Redis 的快速介绍及其基本数据类型和操作(下)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,倚天版 1GB 1个月
简介: Redis 是一个主要由开发者 Salvatore Sanfilippo(Antirez)开发的开源内存数据结构存储器,用于改进其网站的可伸缩性,可以用作数据库、缓存和消息代理等,可以在项目中结合着使用 Redis。

哈希类型

用来保存更复杂的结构化数据


  • HSET:设置哈希表字段
  • HMSET:设置哈希表多个字段
  • HGET:获取哈希表字段值,如 HGET 8000 ename
  • HMGET:获取多个哈希表字段值,如 HMGET 80000 ename job deptno
  • HGETALL:获取所有哈希表字段值
  • HKEYS:获取所有哈希表字段名
  • HLEN:哈希表中的字段数量
  • HEXISTS:判断哈希表是否存在某个字段
  • HVALS:获取哈希表中的所有字段值
  • HDEL:删除哈希表的字段
  • HINCRBY:让哈希表某个字段值加上指定的整数值,如 HINCRBY 8000 deptono 10
  • HINCRBYFLOART:让哈希表某个字段值加上指定的浮点数

列表类型

当我们需要向 VALUE 保存序列化的数据,可以使用列表类型

RPUSH dname 技术部 后勤部 售后部
LPUSH dname 秘书处
LSET dname 2 销售部
LRANGE dname 0 -1
  • RPUSH:在列表末尾新增值
  • LPUSH:在列表开头新增值
  • LLEN:获取列表长度
  • LINDEX:获取列表某个元素,如 lindex dname 0
  • LINSERT:在某个位置插入元素,如 linsert dname before 秘书处 董事会
  • LPOP:删除最左边的元素 LPOP dname
  • RPOP:删除列表最右边的元素 RPOP dname
  • LREM:删除列表某个元素,如
RPUSH employee Scott
RPUSH employee Jack
RPUSH employee Scott
LREM employee 1 Scott # 删除第一个Scott,不是指索引为一

集合类型

假如要求数据不允许重复,则可以使用集合类型。


集合操作

SADD empno 8000
SADD empno 8001
SADD empno 8002
SADD empno 8003 8004 8005
SMEMBERS empno


  • SADD:将给定值添加到集合
  • SCARD:获取集合长度,如: SCARD empno
  • SISMEMBER:判断是否含有某个元素,如 SISMENBER empno 8000
  • SREM:删除某个元素
  • SPOP:随机删除并返回集合的某个元素,如 SPOP empno
  • SRANDMEMBER:随机返回集合中的元素,如 SRANDMEMBER empno 5
  • SUNION:组合两个或多个集合并返回所有元素的列表
  • SMOVE:将成员从一个集合移动到另一个集合


关于集合的其他操作,可以点此处

有序集合

带有排序功能的集合,Redis 按照元素分数值排序

ZADD keyword 0 "han" 0 "jack ma" 0 "Andrew wu"
ZINCRBY keyword 1 "han"
ZINCRBY keyword 5 "jack ma"
ZINCRBY keyword 2 "Andrew wu"
ZREVRANGE key 0 -1


  • ZCARD:获取有序集合长度
  • ZCOUNT:查询某个分数值区间内的元素数量,如 ZCOUNT keyword 5 10
  • ZSCORE:查询元素的分数值
  • ZRANGE:获取有序集合的内容(升序),如 ZRANGE keyword 0 -1
  • ZREVRANGE:获取有序集合的内容(降序),如 ZREVRANGE keyword 0 -1
  • ZRANGEBYSCORE:获取分数值区间内的集合内容(升序),如
zrangebyscore keyword 5 10  # 5-10
zrangebyscore keyword 5 (10  # 大于等于5, 小于 10
zrangebyscore keyword 100000 +inf


  • ZREVRANGEBYSCORE:获取分数值区间内的集合内容(降序) zrevrangebyscore keyword 10 5
  • ZRANK:获取元素的升序排名(从 0 开始)zrank keyword "xx"
  • ZREVRANK:获取元素的降序排名(从 0 开始)
  • ZREM:删除有序集合中的元素 ZREM keyword "x" "y"
  • ZREMRANGEBYRANK:删除排名区间内的元素 zremrangebyrank keyword 0 2
  • ZREMRANGEBYSCORE:删除分数值区间内的元素 zremrangebyscore keyword 0 -3

zremrangebyscore keyword inf (5000)

总结

本文简要介绍了 Redis 的由来及特点、 Redis 的主要用途及其所用的公司,然后针对 Redis 的基本数据结构进行展示和常见命令,希望能对读者有帮助,以此查漏补缺。关于 Redis 更多的操作命令,可以查看官方文档。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
7天前
|
存储 NoSQL Java
深入理解Redis数据类型Hashes原理
本文深入分析了Redis中的hashes数据类型,这是一种用于存储行记录的数据结构,允许一个key下存储多条记录。
深入理解Redis数据类型Hashes原理
|
5天前
|
NoSQL Java Redis
Redis5种数据类型
这篇文章介绍了Redis的五种数据类型:字符串、列表、集合、有序集合和哈希,并通过代码示例展示了如何在Spring框架中使用RedisTemplate操作这些数据类型。
Redis5种数据类型
|
7天前
|
存储 NoSQL 算法
深入理解Redis数据类型Zset原理
本文深入探讨了Redis中的Zset(有序集合)数据类型,它是一种可以存储排序功能的集合,其中每个元素都具有一个浮点型的score属性,用于根据score进行排序。
深入理解Redis数据类型Zset原理
|
7天前
|
存储 缓存 NoSQL
深入理解Redis数据类型String原理
本文深入探讨了Redis中String数据类型的实现原理和使用场景,基于Redis 5.0版本进行分析。
深入理解Redis数据类型String原理
|
22天前
|
存储 缓存 NoSQL
Redis 常用五种数据类型编码
Redis 常用五种数据类型编码
24 9
|
22天前
|
NoSQL Redis 索引
Redis 中ZSET数据类型命令使用及对应场景总结
Redis 中ZSET数据类型命令使用及对应场景总结
31 2
|
22天前
|
NoSQL Redis
Redis set数据类型命令使用及应用场景使用总结
Redis set数据类型命令使用及应用场景使用总结
22 1
|
23天前
|
缓存 NoSQL 数据管理
Redis 五种数据类型
Redis 五种数据类型
29 2
|
26天前
|
NoSQL Linux Redis
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
|
3天前
|
存储 缓存 NoSQL
Redis深度解析:部署模式、数据类型、存储模型与实战问题解决
Redis深度解析:部署模式、数据类型、存储模型与实战问题解决