洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法
今天,我们来详细聊聊Redis技术内幕。
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法
Redis存储篇内容概览
既然要把数据放到内存中,就需要提供索引数据的方式,常见的索引实现技术有:Hash表,B+树,字典树等。MySQL中的索引是通过B+树实现的。而Redis作为KV内存数据库,其是采用哈希表来实现索引的。
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis存储篇内容概览
Redis内存数据结构 | sds,linkedlist,hash,skiplist,intset,ziplist,quicklist
redis主要的数据类型有:String,List,Hash,Set,SortedSet,也称为对象,而这些数据类型,底层是基于特定的数据结构来实现的。
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis内存数据结构 | sds,linkedlist,hash,skiplist,intset,ziplist,quicklist
Redis中的对象 | string,list,hash,set,zset,module,stream
对象可以理解为Redis的数据类型,数据类型底层可以使用不同的数据结构来实现。
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis中的对象 | string,list,hash,set,zset,module,stream
Redis高级功能 | bitmap,hyperloglog,bloom-filter,geospatial
基于基础的数据类型,Redis扩展了一些高级功能,如下图所示:
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis高级功能 | bitmap,hyperloglog,bloom-filter,geospatial
Redis内存数据库篇内容概览
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis内存数据库篇内容概览
Redis持久化方式 | rdb,aof
Redis是一个内存的键值对数据库,但是要是服务进程挂了,如何恢复数据呢?这个时候我们就要来讲讲Redis的持久化了。
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis持久化方式 | rdb,aof
Redis读写键的时候内部都做了什么操作?
当通过命令对数据库进行了读写之后,Redis同时会做一些维护工作:
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis读写键的时候内部都做了什么操作?
Redis是如何存储键的过期时间的?
EXPIRE key seconds,设置key的生存秒数; PEXPIRE key milliseconds,设置key的生存毫秒数; EXPIREAT key timestamp,设置key的过期时间戳(秒); PEXPIREAT key timestamp,设置key的过期时间戳(毫秒) SETEX,设置一个字符串的过期时间; TTL与PTTL,接收一个带有生存时间的键,返回键的剩余生成时间。
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis是如何存储键的过期时间的?
Redis中如何删除过期键
在程序设计中,处理过期键有三种策略:定时删除、惰性删除和定期删除。Redis结合使用惰性删除和定期删除来高效管理数据过期。惰性删除在接收到读写命令时判断键是否过期,过期则删除。定期删除则是定时从数据库中随机选取键进行过期检查。对于从库中的键过期问题,主库过期键的删除操作会同步到从库,从库不会自行删除过期键,以保持缓存一致性。从Redis 3.2版本开始,从库在读取键时会先检查是否过期,过期则返回nil,避免读取到过期键。为防止主从同步延迟导致的数据不一致,建议使用EXPIREAT命令直接设置过期时间。
作者:帅旋
|
发表于 2021-06-16
|
分类于  存储
Redis中如何删除过期键
1235
×
IT宅

关注公众号及时获取网站内容更新。

请帅旋喝一杯咖啡

咖啡=电量,给帅旋充杯咖啡,他会满电写代码!

IT宅

关注公众号及时获取网站内容更新。