Redis

Redis(Remote dictionary service 远程字典服务)

特性

  • 快  -- 内存型数据库 key-value
  • 持久化  -- 过期、淘汰策略
  • 高可用 集群 
  • 单线程命令执行
  • IO多路复用

Redis内部数据的存储结构-redis Object

1、结构体定义:

typedef struct redisObject {
    unsigned type;
    unsigned encoding;
    unsigned lru;
    int refcount;
    void *ptr;
} robj;

2、字段说明

        type: 数据类型

        encoding: 内部编码

        lru: 如果是LRU 设置的是全局的lru_clock的值 即是最近访问时间

              如果是LFU,低8位设置的是使用次数(频率),高16位设置的是访问时间

        refcount: 引用数,如果为0说明现在这个value没人引用,可以回收


Redis五大数据类型

1、String

    内部编码(转换不可逆)

  1.  int -- 8字节长整型 redis.conf文件中可配
  2. raw -- 44字节以上
  3. embstr -- 44字节以下 只读

2、hash(可以存储对象类型数据)

key和value中间有一个field(小key)但是field不能设置过期时间   

 内部编码

  1.  ziplist
    1. 类似于双向链表,不同的是ziplist指向的是指针并不是具体的数据。典型的时间换空间
    2. 所以只能用在数据比较小的地方
    3. 64字节 数量<512
  2. hashtable
    1. 数组+链表的结构
    2. 可以扩容 有两个数组ht[0]和ht[1]
      1. 先为ht[1]分配空间 = ht[0].used*2
      2. ht[1]=ht[0]
      3. ht[0]删除
      4. ht[1]改为ht[0],创建新的ht[1]

3、list(有序可以重复)

 内部编码

    <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值