【起】Redis 基础篇——基本数据结构之总结篇

前言

距离过年那会闲在家更新的 MySQL 系列已经过去一段时间了,这段时间一直在忙其他的,所以博客的更新也就搁置了,但是一直在想着要更新啥内容比较好,刚好朋友给了我一本 Redis 的书籍,我就打算看完结合官方的文档总结一下,分享给大家,如果有什么不对的地方请指正。

Redis 系列,我想以“起承转合”的形式来更新,不过不一定是四篇噢,因为篇幅有限,太长怕你们没有耐心看完,可能《起》篇就分为几篇博文来叙述了,我也会对其进行规整,方便大家看完能更好的吸收,毕竟写文章的我能得到各位观看我的文章,是我的荣幸,我必须得对大家负责的嘛~

话归正题,Redis 应该很多人都有用过(没用过应该看这篇也能看得懂,但是一些基本理论就得自己上网百度啦)。至于 Redis 是什么,有什么好处,怎么用,那就继续往下看吧~本文会侧重于让大家对Redis 基本数据类型的操作命令,底层存储结构以及其应用场景得到一定的认知。

附上基础篇的脑图(上传平台有压缩,有兴趣可以到我的公众号【6曦轩】领取原图)

今天的篇章是对前面介绍的 Redis 的数据类型进行一个总结,然后接下来的篇章我准备将一些 Redis 内部的细节进行一个剖析阐述。

正文

Redis 的数据类型

基于前面篇章的一些总结

数据结构总结
对象 对象 type 属性值 type 命令输出 底层可能的存储结构 object encoding
字符串对象 OBJ_STRING “string” OBJ_ENCODING_INT
OBJ_ENCODING_EMBSTR
OBJ_ENCODING_RAW
int
embstr
raw
列表对象 OBJ_LIST “list” OBJ_ENCODING_QUICKLIST quicklist
哈希对象 OBJ_HASH “hash” OBJ_ENCODING_ZIPLIST
OBJ_ENCODING_HT
ziplist
hashtable
集合对象 OBJ_SET “set” OBJ_ENCODING_INTSET
OBJ_ENCODING_HT
intset
hashtable
有序集合对象 OBJ_ZSET “zset” OBJ_ENCODING_ZIPLIST
OBJ_ENCODING_SKIPLIST
ziplist
skiplist(包含 ht)
编码转换总结
对象 原始编码 升级编码
字符串对象 INT
整数并且小于 long 2^63-1
embstr
超过 44 字节,被修改
raw
哈希对象 ziplist
键和值的长度小于 64byte,键值对个数不超过 512 个,同时满足
hashtable
列表对象 quicklist
集合对象 intset
元素都是整数类型,元素个数小于 512 个,同时满足
hashtable
有序集合对象 ziplist
元素数量不超过 128 个,任何一个 member 的长度小于 64 字节,同时满足。
skiplist
应用场景总结
  • 缓存——提升热点数据的访问速度
  • 共享数据——数据的存储和共享的问题
  • 全局 ID —— 分布式全局 ID 的生成方案(分库分表)
  • 分布式锁——进程间共享数据的原子操作保证
  • 在线用户统计和计数
  • 队列、栈——跨进程的队列/栈
  • 消息队列——异步解耦的消息机制
  • 服务注册与发现 —— RPC 通信机制的服务协调中心(Dubbo 支持 Redis)
  • 购物车
  • 新浪/Twitter 用户消息时间线
  • 抽奖逻辑(礼物、转发)
  • 点赞、签到、打卡
  • 商品标签
  • 用户(商品)关注(推荐)模型
  • 电商产品筛选
  • 排行榜

By the way

有问题?可以给我留言或私聊
有收获?那就顺手点个赞呗~

当然,也可以到我的公众号下「6曦轩」,

回复“学习”,即可领取一份
【Java工程师进阶架构师的视频教程】~

回复“面试”,可以获得:
【本人呕心沥血整理的 Java 面试题】

回复“MySQL脑图”,可以获得
【MySQL 知识点梳理高清脑图】

还有【阿里云】【腾讯云】的购买优惠噢~具体请联系我

曦轩我是科班出身的程序员,php,Android以及硬件方面都做过,不过最后还是选择专注于做 Java,所以有啥问题可以到公众号提问讨论(技术情感倾诉都可以哈哈哈),看到的话会尽快回复,希望可以跟大家共同学习进步,关于服务端架构,Java 核心知识解析,职业生涯,面试总结等文章会不定期坚持推送输出,欢迎大家关注~~~

在这里插入图片描述

你可能感兴趣的:(Redis,Java,运维,redis,java,nosql,运维,经验分享)