
redis
catnoiofjz
这个作者很懒,什么都没留下…
展开
-
Redis_Redisson_Redlock
一,redis锁的普通实现设置key(myKey)的值为myUuid(当前线程唯一标志值),NX代表key不存在才设置,PX代表30秒后过期set myKey myUuid NX PX 30000使用lua脚本执行,保证原子性,判断key对应的值是当前线程的myUuid才删除,避免由于当前线程阻塞超过30秒后再删除key时,误删了其他线程设置的key。if redis.call('get...原创 2020-04-22 17:22:04 · 416 阅读 · 0 评论 -
redis数据持久化策略
1.rdb将数据保存一个快照,存放在dump.rdb文件中在redis.conf文件中可配置以下属性rdbcompression yes 保存文件是否压缩,默认为yesrdbchecksum yes 保存文件是否进行rdb文件格式校验,默认为yesstop-writes-on-bgsave-error yes 保存文件时发生错误是否停止,默认为yesdbfilename dump....原创 2020-04-13 19:00:08 · 122 阅读 · 0 评论 -
redis内存淘汰策略
当redis使用的内存超过最大内存限制maxmemory时,会使用以下内存淘汰策略之一。volatile-lru: 对设置了过期时间的数据,淘汰最近最少使用的。volatile-ttl: 对设置了过期时间的数据,淘汰即将过期的。volatile-random:对设置了过期时间的数据,随机淘汰。volatile-lfu: 对设置了过期时间的数据,淘汰最少使用的。(新加策...原创 2020-04-10 23:17:05 · 160 阅读 · 0 评论 -
redis过期key删除策略
redis的key到了过期时间后,不会立刻被删除,会通过redis自身的删除策略来删除。1.定时删除策略在设置key过期时间的同时,创建一个定时器,等key到期了将其删除。优点:快速删除,节省内存空间缺点:当cpu高负载时,会给cpu添加额外的压力,同时导致redis服务器的处理效率有所下降总结:以cpu性能换内存空间2.惰性删除策略数据过期后不进行处理,等下次访问该数据时判断...原创 2020-04-09 18:06:51 · 693 阅读 · 0 评论 -
redis缓存穿透,击穿和雪崩
缓存穿透某个key在redis和db中都没有,如果大量去查,则会不停地查db,增加db的压力解决方案1.即使db中没有也可以缓存到redis,设置一个1-5分钟的过期时间即可2.针对黑客攻击的情况,更换加密key,这样攻击的url请求就通过不了校验流程缓存击穿某个经常查询的key突然过期了,导致大量请求落到db解决方案1.设置超热key(已确定每天都有超大访问量的key)永不过...原创 2020-04-08 18:29:54 · 131 阅读 · 0 评论