redis常见知识点

持久化

rdb:内存数据快照,覆盖磁盘中旧的快照数据 快照期间如果有新的数据写入不会在此次快照过程中保留 占用内存小
aof:每次变更操作时将操作语句通过write函数写入文件中,追加到磁盘中 优势:数据不丢失 缺点占用内心大


支持数据类型和数据结构

String:
List:双向链表结构
hash:
Set:
ZSet:


缓存穿透、缓存击穿、缓存雪崩的概念以及处理办法

缓存穿透:数据库和缓存中均不存在,每次访问都会去访问数据库。
解决方案:1.对空值做缓存,设置过期时间;2.使用布隆过滤器 (布隆过滤器会判断数据库中是否存在该数据,不存储具体值,而是根据hash算法最终记录是否存在,用位记录,占用空间极小)
缓存击穿:过期时间失效
解决方案:1.不设置过期时间;2.加互斥锁,即使一时失效也不会出现同时大量访问数据库的情况;


缓存雪崩:

同一时间点,过期时间都失效了
解决方案:1.分开设置过期时间;2.热点数据不设置过期时间;


redis数据统计

PV:page view 单页访问量。 给每个网页一个独立的 Redis 计数器就可以了,来一个请求,incrby 一次,最终就可以统计出所有的 PV 数据;
UV:unique view 自然人访问量。
1.使用Set集合统计,集合有去重功能,在每个页面设置一个集合,将来访问的用户ID存储其中,然后统计数量。缺点占用内存较大。
2.使用bitmap位图功能。

#设置指定位置的位值
setbit key offset value    setbit  2021-01-01  32   1      offset可以当做用户的自增ID
#或者指定位置的位值
getbit key offset             getbit  2021-01-01      获取用户在2021-01-01这天的登录状态
#获取指定范围内key为1的数量
bitcount key start end   bitcount 2021-01-01 12  100    2021-01-01这天用户ID在12到100范围内多少个用户登录过

3.HyperLogLog基数统计,特点是占用内存小,有一定的错误率

127.0.0.1:6379> PFadd 2022-02-02 a b c d e f g h i j
(integer) 1
127.0.0.1:6379> PFadd 2022-02-02  h i j  重复数据返回0
(integer) 0
127.0.0.1:6379> PFcount 2022-02-02
(integer) 10   统计出2022-02-02这天有多少用户访问

127.0.0.1:6379> PFadd mykey2 i j z x c v b n m
(integer) 1
127.0.0.1:6379> PFCOUNT mykey2
(integer) 9
127.0.0.1:6379> PFMERGE mykey3 mykey mykey2
OK
127.0.0.1:6379> PFCOUNT mykey3
(integer) 15
127.0.0.1:6379>

缓存淘汰策略和过期删除策略(定期删除和惰性删除)

内存不足的淘汰策略:

1.直接报错;
2.加入键时,如果过限,首先通过LRU算法驱逐最久没有使用的键;
#设置过过期
3.加入键时,如果过限,首先从设置了过期时间的键集合中驱逐最久没有使用的键;
#已经过期
4.加入键时,如果过限,从所有key随机删除;
5.加入键时,如果过限,从过期键的集合中随机删除;
#马上过期
6.从配置了过期时间的键中驱逐马上就要过期的键;
7.从所有配置了过期时间的键中驱逐使用频率最少的键;
8.从所有键中驱逐使用频率最少的键;

Redis数据存储在内存中,做缓存能提供访问速度,单线程确保线程安全,可以当做分布式锁,支持事务,可以做消息队列,发布-订阅模式。支持Master-Slave模式,集群哨兵模式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文地址1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点R...
    baixiaoshuai阅读 1,895评论 0 0
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,272评论 1 51
  • 看了一个多月redis了,利用假期做了个思维导图,博客支持有限,公开到processon里了.还有密码功能,我也想...
    王小帅_94阅读 4,520评论 1 2
  • redis优势 1、高速读写访问,Redis能读的速度是110000次/s,写的速度是81000次/s 。 2、海...
    猿职场阅读 1,742评论 0 1
  • 1. 什么是redis Remote Dictionary Server(Redis)是一个开源的使用ANSI C...
    hh_07阅读 2,778评论 0 0

友情链接更多精彩内容