Redis —— Linux操作Redis
Redis —— Linux操作Redis
Redis简介
官网:redis.io
下载:Download/redis.io
命令查询:Redisdoc.com
Redis功能特性
- 高速读写
- 数据类型丰富
- 支持持久化
- 多种内存分配及回收策略
- 支持事务
- 消息队列、消息订阅
- 支持高可用
- 支持分布式分片集群
Redis、Memcache、Tair的比较
企业缓存数据库解决方案对比
Memcache
优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性Hash多核结构、多线程读写性能高
缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高
Redis
优点:高性能读写、多数据类型支持、支持数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高
缺点:多线程读写较Memcache慢
Tair
tair是基于memcache开发的二次产品。
优点:高性能读写,支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
缺点:单机情况下,读写性能较其他两种产品较慢。
总结
memcache适用于多个用户发起少量请求。
redis适用于单个用户发起多次请求
新浪微博应用的是redis,淘宝应用tair。双十一,提前一周将热数据放进tair。
对比测试
Redis中数据持久化
redis中数据持久化有两种方式
- RDB
- AOF:即Appended only file
RDB
实现方式
即可以在指定的时间间隔生成数据集的时间点快照(point-in-time snapshot)。
镜像方式持久化,内存中的数据结构直接映射到磁盘上。
是覆盖式的持久化方式,一般用来做备份。
注意:持久化的数据可能不是完整的。
配置文件
在conf文件中开启持久化,自动调用save命令
vim /etc/redis.conf dbfilename dump.rdb ---- 持久化文件后缀为rdb dir /data/6379 save 9000 1 ---- 9000秒,即15分钟内有一个变化(更改),该时间点做一次持久化 save 300 10 ---- 5分钟 save 60 10000 ---- 1分钟
三条不冲突,配置完后需要重启
AOF
实现方式
redis 2.x版本后才有,1.x版本没有
记录redis的每一条修改操作。到持久化文件中。
可以是一个实时的持久化方式。
追加形式持久化,数据可能是完整的(取决于配置)。
配置文件
appendonly yes/no appendfsync always # appendfsync everysec # appendfsync no
appendonly yes/no:开关
appendfsync xxx:持久化策略,三选一
- always:redis中有一个变化,就持久化一次
- everysec:每秒持久化一次(性能相对较高,但一秒钟可能发生几千个变化,有可能丢失1秒钟的数据)。
- no:不自动持久化,一般不会用。
总结
RDB和AOF可以同时开启。
一般企业用RDB,对数据安全要求高的企业会开启AOF。
Redis中的数据类型及操作
全局Key的操作
- KEYS *
- DEL KEY
- EXITSS
- RENAME
- SORT
- TYPE
- DUMP RESTORE
- EXPIRE \ PEXPIRE
- TTL \ PTTL
- PERSIST
- RANDOMKEY 随机返回数据库中的任意键
String
方法
Hash
方法
List
方法
Set
方法
Order Set
方法
Redis集群
主从复制
Senitial