Redis设计与分析
shine10076
这个作者很懒,什么都没留下…
展开
-
Redis的数据结构之简单动态字符串SDS
Redis的数据结构-简单动态字符串SDS 1.SDS的定义 sds结构: struct sdshdr{ //记录buf数组中已经使用的字节数量 //等于SDS中所保存字符串的长度 int len; //记录buf数组中未使用字节的数量 int free; //字节数组 char[] buf } SDS遵循C字符串以空字符结尾的习惯,保存空字符的一字节空间不记录到len属性中。这样...原创 2019-04-21 09:52:12 · 76 阅读 · 0 评论 -
Redis数据结构之字典
Redis数据结构之字典 字典是一种保存键值对的抽象数据结构。在字典中,一个键可以和一个值进行关联,这些关联的键和值就称为键值对。 Redis的数据库就是通过字典作为其底层实现的。对数据库的增删改查都是建立在字典的操作之上。 1.字典的实现 Redis的字典使用hash表作为底层实现 1.1哈希表 Redis字典所使用的哈希表结构定义如下 typedef struct dictht{ //哈希表...原创 2019-04-22 21:17:34 · 114 阅读 · 0 评论 -
Redis数据结构之跳跃表
Redis数据结构之跳跃表 1.跳跃表的定义 跳跃表是一种有序数据结构,通过每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 支持平均O(N),最坏时间复杂度为O(N)复杂度的节点查找,还可以通过顺序性操作批量处理节点。 跳跃表在Redis里的用处:一是实现有序集合,另一个是在集群节点中用作内部数据结构。 2.跳跃表的实现 Redis的跳跃表由zskiplistNode和zski...原创 2019-04-24 09:50:35 · 455 阅读 · 0 评论 -
Redis之RDB持久化
Redis之RDB持久化 1RDB持久化的概念 因为Redis数据库是一个内存数据库,一旦服务器进程退出,那么服务器中的数据库状态也会消失不见,为了解决这个问题,redis提供了RDB(Redis DataBase file)持久化功能。可以将redis中的数据库状态保存到磁盘中,避免数据的意外丢失。 2RDB文件的创建和载入 有两个Redis命令可以用于生成RDB文件,一个是SAVE,另...原创 2019-05-04 15:32:32 · 154 阅读 · 0 评论 -
Redis的使用场景
Redis使用场景 1缓存 作为key-value形态的内存数据库,使用Redis缓存数据非常简单,只需要通过String类型将序列化后的对象存起来即可。 序列化(Serialization):是将对象的状态信息转化为可以存储或传输的形式的过程。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 不过也有需要注意的地方: 必须保证不同对象的key不可以重复,并且key尽量短,...转载 2019-05-06 22:36:13 · 3107 阅读 · 0 评论