Please enable JavaScript.
Coggle requires JavaScript to display documents.
Redis (数据类型 (string (key:value (二进制安全, 可以包含任何数据,比如jpg图片或序列化对象,…
Redis
数据类型
string
key:value
二进制安全
可以包含任何数据,比如jpg图片或序列化对象
一个键最大可以存储512M
hash
key:field=>value
键值对集合,相当于Map
使用场景
适合存储对象,存储、读取、修改用户属性
list
key:value
有序,链表(双向链表)实现
增删快,提供了操作某一段元素的API
使用场景
最新消息排行,如朋友圈时间线
消息队列
set
key:value
哈希表实现,元素不重复
增/删/查的复杂度都是O(1)
可以进行求交集/并集/差集操作
使用场景
共同好友
利用唯一性统计去重,比如统计访问网站的IP
sorted set
key:(value,score)
比set多了一个score,元素按score有序排列
使用场景
排行榜
带权重的消息队列
bitmap
hyperloglog
持久化
RDB
指定时间间隔进行生成一次数据集的时间点快照
优点
持久化文件存储结构紧凑,适合进行备份、全量复制、灾难恢复
可以最大化Redis性能,父进程只需要fork()一个子进程来处理保存操作,父进程无须进行I/O操作
RDB恢复大数据集速度比AOF快
缺点
由于每次保存整个数据集,频率不能太高,间隔期间容易丢失数据
AOF(Append-Only File)
通过追加记录的方式记录服务器执行的所有写操作命令
优点
可以高频率fsync保存每个操作,数据安全性高
AOF文件体积过大时会启动重写机制自动重写,整个过程绝对安全
AOF文件有序保存所有写入操作并且文件以Redis协议格式保存容易读懂
缺点
AOF文件体积会比RDB大
开启fsync策略速度可能会慢于RDB(性能依旧很高)
曾经出现过BUG,RDB更加安全
总结
要保证数据安全应该同时使用两种持久化
集群