Redis
开源key-value存储系统
目录索引
• Redis简介
• Redis安装
• Redis配置
• Redis支持的数据类型
• Redis的功能
– 持久化 ( persistence )
– 主从复制( master-slave replication )
– 事务支持( transaction )
– 发布订阅( pub/sub )
– 管道 ( pipeline )
– 虚拟内存( vm )
• Redis性能
• Redis部署
• Redis应用场景
• Redis总结
Redis简介
• Redis是一款开源的、高性能的键-值存储(key-value store
)。它常被称作是一款数据结构服务器(data structure
server)。Redis的键值可以包括字符串(strings)类型,同
时它还包括哈希(hashes)、列表(lists)、集合(sets)和
有序集合(sorted sets)等数据类型。 对于这些数据类型,
你可以执行原子操作。例如:对字符串进行附加操作(
append);递增哈希中的值;向列表中增加元素;计算集合
的交集、并集与差集等。
• 为了获得优异的性能,Redis采用了内存中(in-memory)数
据集(dataset)的方式。同时,Redis支持数据的持久化,
你可以每隔一段时间将数据集转存到磁盘上(snapshot),
或者在日志尾部追加每一条操作命令(append only file,aof
)。
Redis简介
• Redis同样支持主从复制(master-slave replication),并
且具有非常快速的非阻塞首次同步( non-blocking first
synchronization)、网络断开自动重连等功能。同时Redis
还具有其它一些特性,其中包括简单的事物支持、发布订阅
( pub/sub)、管道(pipeline)和虚拟内存(vm)等 。
• Redis具有丰富的客户端,支持现阶段流行的大多数编程语言
。java常用的是Jedis( http://redis.io/clients )
Redis安装
• 开发环境108.66用redis-3.0.7 ( http://redis.io/download )
• tar zxvf redis-3.0.7 解压缩
• cd src 进入src目录
• make 编译Redis
• make test 可以测试一下(本步可省略)
• make install 安装,默认安装目录是 /usr/local/bin,生成
如图5个二进制文件,可以将其拷到新建目录下,例如:
/usr/local/redis/bin
Redis安装
• cp 源码/src/redis.conf /usr/local/redis/etc 配置文件复
制
• cd /usr/local/redis
• ./bin/redis-server ./etc/redis.conf 启动Redis服
务
• 此时redis已经运行,但要获得好的性能,还需要对配置文件进
行合理的配置
Redis配置
• 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用
守护进程
daemonize no
•
• 2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文
件,可以通过pidfile指定
pidfile /var/run/redis.pid
•
• 3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什
么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ
取自意大利歌女Alessia Merz的名字
port 6379
•
• 4. 绑定的主机地址(没有配置)
•
• 5.当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
•
• 6. 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、
bind 127.0.0.1
timeout 0
warning,默认为verbose
loglevel notice
•
Redis配置
• 7. 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这
里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
logfile "/var/log/redis_6379.log"
•
• 8. 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上
•
•
•
•
•
•
•
指定数据库id
databases 16
•
• 9. 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个
条件配合
save
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及
60秒内有10000个更改。
• 10. 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如
果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbcompression yes