Redis基础原理



Redis基础应用

用途:缓存、分布式锁

字典hash
  • 1.记录帖子点赞数、评论数、点击数、
  • 2.记录帖子的标题、摘要、作者、封面、展示列表
  • 3.缓存近期热评内容、减少数据库压力
列表list
  • 根据帖子id记录相关帖子
跳跃列表zset
  • 1.根据用户id记录帖子列表
  • 2.记录帖子点赞、评论用户id列表
  • 3.收藏
  • 4.记录热门帖子列表、总热榜、分类榜
  • 5.缓存用户历史行为,过滤恶意行为
计数器
  • 记录整数自增

5种基本数据结构

String(字符串)

  • 特点:类似于 键值对 的存储,字符串分配空间 > 存储空间;字符串长度< 1MB ,翻倍扩容, 字符串长度 > 1MB,扩容只加1MB,最大为 512MB
  • 用途:缓存用户信息

List(列表)

  • 特点:相当于java 里面的LinkList
  • 优点:插入删除较快,但遍历查询慢 时间复杂度 O( n )
  1. 右进左出:队列
  2. 右进右出:栈
  3. 慢操作:相当于链表的 get ( i ),只能处理较少数进行遍历
  4. 快速列表: quicklist
    优点:快速 插入、删除,又不好出现太大的空间冗余。
    对比其他链表:普通链表需要附加指针空间(如:prev、next)会浪费太多空间,加重内存的碎片化。
    快速列表 = 链表 + ziplist :多个ziplist 结合形成链表–>quicklist
    ziplist:压缩列表。一块连续存储的内存存储,所有元素彼此紧挨着一起存储

hash(字典)

  • 特点:类似HashMap的无序字典,结构上都是 数组 + 链表 的二维结构
  • Redis字典和 JAVA中HashMap区别:JAVA中 rehash 时是一次性区别rehash;而Redis中 是采用渐进式rehash策略:旧hash–>新hash。
    渐进式rehash策略:保留新旧两个hash结构,查询时会同时查询两个hash结构,在后续的定时任务及hash操作指令中,循序渐进将旧hash内容迁移到新hash,直到迁徙完成,新hash完全取代。
    什么时候ReHash
  • 缺点:存储消耗高于单个字符串。

set(集合)

Redis原理

Redis集群

Redis拓展

Redis源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值