一、
1)value其实不仅可以是String,也可以是数字。
常规key-value缓存应用; 常规计数:微博数,粉丝数等。
2)hash特别适合用于存储对象。
可以使你像在数据库中 Update 一个属性一样只修改某一项属性值。
3)list list就是链表,
比如微博的关注列表,粉丝列表,做分页
Redis list的实现为一个双向链表,即可以支持反向查找和遍历
4)set特殊之处在于set是可以自动排重的。
5)Sortedset 使得集合中的元素能够按score进行有序排列。
直播时排行信息包含直播间在线用户列表,
各种礼物排行榜
二、
缓存穿透:一般的缓存系统,都是按照key去缓存查询,
如果不存在对应的value,就应该去后端系统查找
如果key对应的value是一定不存在的,并且对该key并发请求量很大,
就会对后端系统造成很大的压力。这就叫做缓存穿透
解决方案:将一定存在的key或者一定不存在的key 放入一个大的数据查询的地方 然后查询时可以起到过滤效果
缓存雪崩:就是当重启服务器或者大量缓存数据集中在某个节点失效 会对后端产生很大压力
解决方案:添加节点 尽量错开缓存时间
三、redis的aof和rdb的区别.
RDB方式是通过快照方式完成的 持久化
定时生成 RDB 快照非常便于进行数据库备份 建议使用 为了安全两种都要使用
RDB 是一个非常紧凑(compact)的文件,它保存了 Redis 在某个时间点上的数据集
AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
对于相同数量的数据集而言,AOF文件通常要大于RDB文件。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。