Redis
文章平均质量分 78
AlgoRain
欢迎访问我的个人博客www.rain1024.com
展开
-
MySQL与Redis中对LRU算法的使用
MySQL与Redis中对LRU算法的使用LRU也称为最近最少未使用算法,作为最常用的内存淘汰算法,在主流的系统中都可以见到相应的使用场景,而在MySQL与Redis中也有使用,可以说都是用来对存储空间进行管理,及时淘汰更新数据,提高存储空间利用率。Redis内存淘汰机制在redis.conf中有一行参数用来配置内存淘汰策略的maxmemory-policy volatile-LRUvolatile-LRU:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的原创 2021-04-15 14:47:50 · 306 阅读 · 0 评论 -
缓存数据一致性如何保证
缓存数据一致性如何保证最近在思考的一个问题,如何保证缓存和数据库数据的一致性,防止出现类似于余额这种数据,在缓存里是1,而数据库修改为0后,用户再次发起扣费操作时,由于每次先会去判断缓存内余额的数据,缓存数据不一致,导致本应失效的一次请求被判断通过。这种情况在并发低的时候不太容易产生,当并发增大极有可能发生。我在项目中主要靠两种方式来保证数据一致性:数据必须设置随机过期时间缓存数据最重要的目的是提高数据查询速度,在第一次查库之后将数据放入缓存,之后直接从缓存里拿数据即可,所以缓存数据的持久化并不原创 2021-03-17 09:02:04 · 502 阅读 · 0 评论 -
Hash底层存储原理及优化Redis中big Hash的一些建议
Hash底层存储原理及优化Redis中big Hash的一些建议Hash 是 Redis 中出现最为频繁的复合型数据结构,除了 dict 结构的数据会用到Hash外,整个 Redis 数据库的所有 key 和 value 也组成了一个全局Hash,还有带过期时间的 key 集合也是一个Hash。set集合相当于一个value为null的Hash,zset 集合中存储 value 和 score 值的映射关系也是通过 hash 结构实现的。由于业务上考虑不周,使得生产环境中有一个hash结构存储的数据量达原创 2021-03-15 10:58:04 · 788 阅读 · 0 评论 -
分布式锁实践中的一些坑及优化手段
分布式锁实践中的一些坑及优化手段记录使用分布式锁时网上其他文章没有谈及的性能和优化问题,切勿生搬硬套网上代码。本文仅讨论使用Redis作为分布式锁,不考虑Redis其他一些问题,如是否为单机节点,怎么做主从集群或者哨兵,与Zookeeper和其他分布式共识算法实现的分布式中间件有什么区别,我选择redis主要还是考虑它自身的性能和编码的复杂度,至于CP还是AP的选型暂时不作为考量标准。当微服务由单机部署变为分布式集群部署,在业务中涉及的一些数据库操作或者其他可能存在并发问题的地方,都有可能因为代码原创 2021-03-10 13:53:21 · 367 阅读 · 1 评论