Redis指令介绍

Redis 数据结构

String

String 常用操作

  • SET key value // 存入字符串键值对 MSET key value [key value …] // 批量存储字符串键值对
  • SETNX key value // 存入一个不存在的字符串键值对 若存在则返回0
  • GET key // 获取一个字符串键值
  • MGET key [key …] // 批量获取字符串键值 DEL key [key …] // 删除一个键
  • EXPIRE key seconds // 设置一个键的过期时间 ( 秒 )

原子加减

  • INCR key // 将 key 中储存的数字值加 1
  • DECR key // 将 key 中储存的数字值减 1
  • INCRBY key increment // 将 key 所储存的值加上 increment
  • DECRBY key decrement // 将 key 所储存的值减去 decrement

应用场景

  • 计数器
INCR article:readcount:{ 文章 i d} 
GET article:readcount:{ 文章 i d
  • 分布式 session 共享
spring session + redis 实现 session 共享

通过分布式进行保存sessionId:Map 实现分布式 session

  • 分布式全局序列号
INCRBY orderId 1000

每一次申请1000个序号,实现全局唯一ID

Hash

常用操作

  • HSET key field value // 存储一个哈希表 key 的键值
  • HSETNX key field value // 存储一个不存在的哈希表 key 的键值
  • HMSET key field value [field value …] // 在一个哈希表 key 中存储多个键值对
  • HGET key field // 获取哈希表 key 对应的 field 键值
  • HMGET key field [field …] // 批量获取哈希表 key 中多个 field 键值
  • HDEL key field [field …] // 删除哈希表 key 中的 field 键值
  • HLEN key // 返回哈希表 key 中 field 的数量 HGETALL key // 返回哈希表 key 中所有的键值
  • HINCRBY key field increment // 为哈希表 key 中 field 键的值加上增量 i ncrement

应用场景

  • 电商购物车
  1. 以用户 i d 为 key
  2. 商品 i d 为 field
  3. 商品数量为 value

购物车操作
添加商品  hset cart:1001 10088 1
增加数量  hincrby cart:1001 10088 1
商品总数  hlen cart:1001
删除商品  hdel cart:1001 10088
获取购物车所有商品  hgetall cart:1001

List

常用操作

  • LPUSH key value [value …] // 将一个或多个值 value 插入到 key 列表的表头 ( 最左边 )
  • RPUSH key value [value …] // 将一个或多个值 value 插入到 key 列表的表尾 ( 最右边 ) LPOP key // 移除并返回 key 列表的头元素
  • RPOP key // 移除并返回 key 列表的尾元素
  • LRANGE key start stop // 返回列表 key 中 指定区 间内的元 素 , 区 间以 偏 移量 start 和 stop 指定
  • BLPOP key [key …] timeout // 从 key 列表表头 弹出 一个元 素 , 若 列表中 没 有元 素 , 阻塞等待 timeout 秒 , 如果 timeout = 0 , 一 直阻塞等待
  • BRPOP key [key …] timeout // 从 key 列表表尾 弹出 一个元 素 , 若 列表中 没 有元 素 , 阻塞等待 timeout 秒 , 如果 timeout = 0 , 一 直阻塞等待

应用

  • Stack( 栈 ) = LPUSH + LPOP
  • Queue( 队 列) = LPUSH + RPOP
  • Blocking MQ ( 阻塞队 列) = LPUSH + BRPOP

Set

常用操作

  • SADD key member [member …] // 往 集合 key 中存入元 素 , 元 素 存在 则忽略 , 若 key 不存在 则新建
  • SREM key member [member …] // 从 集合 key 中删除元 素
  • SMEMBERS key // 获取集合 key 中所有元 素 SCARD key // 获取集合 key 的元 素 个数
  • SISMEMBER key member // 判断 member 元 素是否 存在 于 集合 key 中
  • SRANDMEMBER key [count] // 从 集合 key 中 选出 count 个元 素 , 元 素 不 从 key 中删 除
  • SPOP key [count] // 从 集合 key 中 选出 count 个元 素 , 元 素从 key 中删除 Set

运算操作

  • SINTER key [key …] // 交 集 运算
  • SINTERSTORE destination key [key …] // 将 交 集 结果 存入 新 集合 destination 中
  • SUNION key [key …] // 并集 运算
  • SUNIONSTORE destination key [key …] // 将并集 结果 存入 新 集合 destination 中
  • SDIFF key [key …] // 差 集 运算
  • SDIFF STORE destination key [key …] // 将 差 集 结果 存入 新 集合 destination 中

应用

  • 微信 微博 点赞 , 收藏 , 标签
  1. 点 赞 SADD like:{ 消 息 ID} { 用户 ID}
  2. 取消点 赞 SREM like:{ 消 息 ID} { 用户 ID}
  3. 检查用户是否 点过 赞 SISMEMBER like:{ 消 息 ID} { 用户 ID}
  4. 获取点赞的用户列表 SMEMBERS like:{ 消 息 ID}
  5. 获取点赞用户数 SCARD like:{ 消 息 ID}

Zset

常用操作

  • ZADD key score member [[score member] … ] // 往 有序集合 key 中加入 带 分值元 素
  • ZREM key member [member … ] // 从 有序集合 key 中删除元 素
  • ZSCORE key member // 返回有序集合 key 中元 素 member 的分值
  • ZINCRBY key increment member // 为有序集合 key 中元 素 member 的分值加上 i ncrement
  • ZCARD key // 返回有序集合 key 中元 素 个数
  • ZRANGE key start stop [WITHSCORES] // 正序获取有序集合 key 从 start 下标到 stop 下标 的元 素
  • ZREV RANGE key start stop [WITHSCORES] // 倒序获取有序集合 key 从 start 下 标 到 stop 下 标 的元 素 •

Zset 集合操作

  • ZUNIONSTORE destkey numkeys key [key …] // 并集计 算
  • ZINTERSTORE destkey numkeys key [key … ] // 交 集计 算

其他高级命令

  • keys: 全量遍历键。用来列出所有满足特定正则字符串规则的key, 当redis数据量比较大时, 性能比较差, 要避免使用

  • scan: 渐进式遍历键 SCAN cursor [MATCH pattern] [ COUNT count] scan 参数提供了三个参数, 第一个是 cursor 整数值(hash桶的索引值), 第二个是 key 的正则模式, 第三个是一次遍历的key的数量(参考值, 底层遍历的数量不一定), 并不是符合条件的结果数量。 第 一次遍历时, cursor 值为 0, 然后将返回结果中第一个整数值作为下一次遍历的 cursor。 一直遍历 到返回的 cursor 值为 0 时结束。
    注意: 但是scan并非完美无瑕, 如果在scan的过程中如果有键的变化 (增加、 删除、 修改) , 那 么遍历效果可能会碰到如下问题: 新增的键可能没有遍历到, 遍历出了重复的键等情况, 也就是说 scan并不能保证完整的遍历出来所有的键, 这些是我们在开发时需要考虑的。

  • Info: 查看redis服务运行信息, 分为 9 大块, 每个块都有非常多的参数, 这 9 个块分别是: Server 服务器运行的环境参数 Clients 客户端相关信息 Memory 服务器运行内存统计数据 Persistence 持久化信息 Stats 通用统计数据 Replication 主从复制相关信息 CPU CPU 使用情况 Cluster 集群信息 KeySpace 键值对统计数量信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值