天天看点

《redis 开发与运维》学习笔记:第一章

redis的特性

1.速度快,官方展示的读写性能是10万/s,本人的本地测试达到为3-4万/s,有以下四点原因:

  • 所有数据都是存放在内存中的
  • 它是由C语言实现的
  • 使用了单线程架构,防止了多线程可能产生的竞争问题
  • 源代码的精细打磨,代码性能高且优雅

2.基于键值对的数据结构服务器。 它提供5中数据结构:字符串、哈希、列表、有序列表、集合,同时在字符串的基础上演变出了位图 (Bitmap)和HyperLogLog两种神器的数据结构

3.丰富的功能

  • 提供了键过期的功能,可以用来实现缓存
  • 提供了发布订阅的功能,可以用来实现消息系统
  • 支持Lua脚本功能,可以创造出更多的命令
  • 提供了简单的事务功能
  • 提供了流水线功能,客户端能够将一批命令一次性传到Redis,减少了网络的开销

4.简单稳定,主要表现在三个方面:源代码少,使用单线程模型,不需要依赖操作系统的类库。

5.客户端语言多。主流的编程语言如java、python、C,C++,NodeJs都可以很方便的介入到Redis

6.持久化。提供RDB和AOF两种策略将雷村的数据保存到硬盘中,避免断电机器故障等造成内存数据丢失的情况

7.主从复制,实现了多个相同数据的Redis副本

8.高可用和分布式

Redis的使用场景

1.缓存(提供了键值过期时间的设置)

2.排行榜系统(提供了列表和有序集合数据结构)

3.计数器系统(天然支持计数功能,且计数性能好)

4.社交网络(提供的数据结构可以比较容易的实现 赞踩,粉丝,共同好友,推送,下拉刷新等社交平台的必备功能)

5.消息队列系统(提供了发布订阅功能和阻塞队列的功能)

Redis不可以做什么

数据规模角度:不支持数据量非常大的

数据冷热角度:冷数据的存储不适宜