Redis 八大数据类型详解
创作时间:
作者:
@小白创作中心
Redis 八大数据类型详解
引用
CSDN
1.
https://blog.csdn.net/weixin_38854703/article/details/113172763
Redis 是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 支持多种数据结构,包括字符串、列表、哈希表、集合、有序集合等。本文将详细介绍 Redis 的八大数据类型及其应用场景。
Redis 的五大基本数据类型
String(字符串)
应用场景:
- 实现计数器(如文章阅读量)
- 存储 JSON 对象
常用命令:
SET key value:设置字符串值GET key:获取字符串值INCR key:将字符串值自增 1DECR key:将字符串值自减 1
List(列表)
应用场景:
- 消息队列(使用
LPUSH和RPOP命令) - 栈(使用
LPUSH和LPOP命令)
常用命令:
LPUSH key value:从列表头部添加元素RPUSH key value:从列表尾部添加元素LPOP key:从列表头部移除元素RPOP key:从列表尾部移除元素LLEN key:获取列表长度LRANGE key start stop:获取列表指定范围内的元素
Hash(哈希表)
应用场景:
适合存放经常变动的对象,可以直接修改某个属性,而不需要像字符串类型那样先转换成实体类再修改。
常用命令:
HSET key field value:设置哈希表字段的值HGET key field:获取哈希表字段的值HGETALL key:获取哈希表中所有字段和值HSETNX key field value:仅当字段不存在时设置其值HDEL key field [field ...]:删除一个或多个哈希表字段
Set(集合)
应用场景:
- 共同好友、共同关注(使用
SINTER key1 key2获取交集) - 可能认识的人(使用
SDIFF key1 key2获取差集) - 点赞功能(使用
SADD key value添加,SREM key value删除,SCARD key统计数量) - 随机抽奖功能(使用
SPOP key随机删除元素或SRANDMEMBER key随机抽取元素)
常用命令:
SADD key member [member ...]:向集合添加一个或多个成员SMEMBERS key:获取集合中的所有成员SISMEMBER key member:判断成员是否在集合中SINTER key [key ...]:获取多个集合的交集SDIFF key [key ...]:获取多个集合的差集SUNION key [key ...]:获取多个集合的并集SCARD key:获取集合的成员数量SPOP key:随机移除并返回集合中的一个成员SRANDMEMBER key [count]:随机返回集合中的一个或多个成员
ZSet(有序集合)
应用场景:
热点新闻(使用 ZINCRBY key increment member 增加权重,ZREVRANGE key start stop withscores 获取前 N 条热点新闻)
常用命令:
ZADD key score member [score member ...]:向有序集合添加一个或多个成员,或更新已存在成员的分数ZRANGE key start stop [WITHSCORES]:获取有序集合中指定范围的成员ZREVRANGE key start stop [WITHSCORES]:获取有序集合中指定范围的成员,按分数降序排列ZINCRBY key increment member:为有序集合中的成员增加分数ZSCORE key member:获取成员的分数ZCARD key:获取有序集合的成员数量ZRANK key member:获取成员在有序集合中的排名(从小到大)ZREVRANK key member:获取成员在有序集合中的排名(从大到小)ZREM key member [member ...]:移除一个或多个成员
跳跃表
跳跃表是基于多指针有序链表实现,可以看成多个有序链表,在查找时从上层指针开始查找,找到对应的取经后再到下一层查找。
跳跃表优点:
- 插入速度非常快,不需要进行旋转等操作来维护平衡性
- 更容易实现
- 支持无锁操作
Redis 三种特殊数据类型
Geospatial(地理位置)
应用场景:
- 附近的人
- 根据溺水人员地理位置获取附近的救援人员
常用命令:
GEOADD key longitude latitude member [longitude latitude member ...]:添加地理位置GEOPOS key member [member ...]:获取地理位置坐标GEODIST key member1 member2 [unit]:计算两个成员之间的距离GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]:以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过给定最大距离的所有位置元素GEORADIUSBYMEMBER key member radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]:以给定成员为中心,返回键包含的位置元素当中,与中心的距离不超过给定最大距离的所有位置元素GEOHASH key member [member ...]:返回一个或多个位置元素的 Geohash 表示
Hyperloglog(统计)
应用场景:
网页的 UV(一个人访问一个网站多次,但是还是算作一个人)
常用命令:
PFADD key element [element ...]:将一个或多个元素添加到 HyperLogLog 中PFCOUNT key [key ...]:返回 HyperLogLog 的基数估计值PFMERGE destkey sourcekey [sourcekey ...]:合并一个或多个 HyperLogLog 到目标 HyperLogLog
Bitmap(位图)
应用场景:
统计用户信息活跃与不活跃、登录与未登录、打卡等两个状态的场景
常用命令:
SETBIT key offset value:设置位图中指定偏移量的位值GETBIT key offset:获取位图中指定偏移量的位值BITCOUNT key [start end]:计算位图中指定范围内的位值为 1 的数量BITOP operation destkey key [key ...]:对一个或多个位图执行位操作
热门推荐
“北帝诞”的生态底色:以“无废景点”引领绿色环保新潮流
注册安全邮箱全步骤与重要性解析
医生推荐:5个简单运动帮你缓解胃胀气
医生解答:生理盐水可以用来洗眼睛吗?
扭伤筋了怎么快速恢复
如何转让二手车
甲亢复发的原因与治疗方法
SME是什么职位?领域专家的角色与职责全解析
如何正确泡发海参,提升其营养价值与美味体验
吃菠菜大便会黑吗
产品经理说ETF丨跨境ETF高溢价频发,普通投资者如何识别防范风险?
西洋参的5种黄金搭配
越婢汤和越婢加术汤治疗肾炎浮肿
难产的产假多少天
腌菜的做法大全 最好吃的腌菜都在这里面
美国关税计算全解析(完税价格、税率及计算方式详解)
富勒烯文献研究:其在新材料与技术中的应用前景如何?
科学家找到了大多数陨石的来源
如何寻找陨石团队
床垫网上买好还是实体店买好?如何选择最适合的床垫
肝脏低回声结节严重吗
春藤夏院:剧本杀中的故事角色关系互动
我国自主研制“核柴一号”:核电站应急柴油发电机组实现国产化突破
胃癌HER2靶向治疗:曲妥珠单抗与ADC药物崛起,罗氏、复宏汉霖争霸
绿色奇迹,健康之选——芹菜的营养价值与功效作用全解析
赠与合同法律指南:赠与能反悔吗?
赠与合同不公证有法律效力吗
高精度狩猎:4.5毫米与5.5毫米弹药的比较
防止CSRF攻击
铁塔维护方案