skiplist跳表结构由node节点组成,用于构成sortedset类型的基础结构。
Redis ziplist结构图
发表于
更新于
ziplist压缩链表,结构体里记录的数据除非特别说明,默认为little-endian编码方式。
Redis Cluster集群代码分析
发表于
更新于
Redis为保证服务的高可用,必然会选择集群的方式来组建Redis集群。随着Redis的逐步迭代演进,搭建集群的方式也是日渐丰富。
Redis高性能原因分析
发表于
更新于
Redis作为开源No-SQL技术的热门代表,在互联网公司里得到广泛的应用,其中一个最重要的原因是高性能,尤其是在秒杀/session缓存等场景,那么Redis自身是如何实现高性能呢?
Redis数据淘汰机制
发表于
更新于
Redis作为高性能的key-value数据库,数据均存放在内存里,所以对内存非常敏感。Redis作者对此做了很多细致性的优化,例如:针对字符串特定的编码;主动移除已过期的数据;对通信缓冲区及时腾空等。但这些优化机制只能减缓内存的消耗速度,作为一个应对生产环境的高可用服务,Redis还是需要一套兜底方案,即如果Redis消耗内存达到上限值或者达到服务器可用内存上限值(例如32位服务器用户进程至多使用3GB),保证进程依旧维持可用状态,这套机制便是数据淘汰机制。
Redis事务实现机制
发表于
更新于
关系型数据库存储引擎例如MySQL InnoDB的一大优势就是对事务的支持。事务可以将多个操作作为一个整体,要么整体成功,要么整体失败,不会存在中间态,可以保证原子性。
Redis作为NoSQL,自身也支持了简版的事务
命令供一些特殊的业务场景使用。