redis五大基础数据类型的操作指令及示例

前言

近期回顾了Redis方面的技术,本文就redis的5大基础数据类型的指令做了一个总结并附上示例


一、Redis是什么?

Redis是一种开源的内存数据库,它被用作缓存、消息代理和键值存储。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,这使得它非常灵活且适用于各种用途。Redis的速度很快,因为它将数据存储在内存中,并且可以持久化到磁盘,确保数据在重启后不会丢失。它也支持多种语言的客户端库,这使得它在各种应用和开发环境中都很流行。

二、基础数据类型使用方法及示例

字符串 (Strings):

  1. 设置键的值:
    SET mykey "Hello"
    
  2. 获取键的值:
    GET mykey
    
  3. 设置多个键值对:
    MSET key1 "value1" key2 "value2"
    
  4. 删除键:
    DEL key1
    
  5. 将键的值递增1:
    INCR counter
    
  6. 在键的值后追加内容:
    APPEND mykey " World"
    
  7. 设置键的过期时间:
    EXPIRE mykey 60
    
  8. 获取键的剩余生存时间:
    TTL mykey
    
  9. 获取键值的子字符串:
    GETRANGE mykey 0 3
    
  10. 获取键值的长度:
    STRLEN mykey
    
  11. 获取多个键的值:
    MGET key1 key2
    
  12. 设置键不存在时才设置键的值:
    SETNX mykey "newvalue"
    
  13. 设置键的值并同时设置过期时间:
    SETEX mykey 60 "value"
    
  14. 设置新值并返回旧值:
    GETSET mykey "newvalue"
    
  15. 将键的值递增指定的步长:
    INCRBY counter 5
    
  16. 将键的值递减1:
    DECR counter
    
  17. 将键的值递减指定的步长:
    DECRBY counter 3
    
  18. 设置位图中指定偏移量的值:
    SETBIT mybitmap 7 1
    
  19. 获取位图中指定偏移量的值:
    GETBIT mybitmap 7
    
  20. 统计位图中值为1的位的数量:
    BITCOUNT mybitmap
    

哈希 (Hashes):

  1. 设置哈希字段的值:
    HSET user:id:001 username Alice
    
  2. 获取哈希字段的值:
    HGET user:id:001 username
    
  3. 设置多个哈希字段的值:
    HMSET user:id:001 username Alice age 30
    
  4. 删除哈希字段:
    HDEL user:id:001 age
    
  5. 获取哈希中所有字段和值:
    HGETALL user:id:001
    
  6. 判断哈希字段是否存在:
    HEXISTS user:id:001 username
    
  7. 获取哈希所有字段:
    HKEYS user:id:001
    
  8. 获取哈希所有值:
    HVALS user:id:001
    
  9. 哈希字段的值递增指定的步长:
    HINCRBY user:id:001 age 5
    
  10. 获取哈希中字段的数量:
    HLEN user:id:001
    
  11. 获取多个哈希字段的值:
    HMGET user:id:001 username age
    
  12. 当字段不存在时设置哈希字段的值:
    HSETNX user:id:001 email "alice@example.com"
    
  13. 获取哈希字段值的长度:
    HSTRLEN user:id:001 username
    
  14. 迭代哈希中的元素:
    HSCAN user:id:001 0 MATCH "user*"
    
  15. 哈希字段的值递增指定的浮点数步长:
    HINCRBYFLOAT user:id:001 balance 10.5
    
  16. 从哈希中随机获取指定数量的字段:
    HRANDFIELD user:id:001 2
    
  17. 获取哈希字段值的长度:
    HSTRLEN user:id:001 username
    
  18. 迭代哈希中的元素:
    HSCAN user:id:001 0 MATCH "user*"
    
  19. 哈希字段的值递增指定的浮点数步长:
    HINCRBYFLOAT user:id:001 balance 10.5
    
  20. 从哈希中随机获取指定数量的字段:
    HRANDFIELD user:id:001 2
    

列表 (Lists):

  1. 将一个值插入到列表的头部:
    LPUSH mylist "world"
    
  2. 将一个值插入到列表的尾部:
    RPUSH mylist "world"
    
  3. 移除并获取列表头部的元素:
    LPOP mylist
    
  4. 移除并获取列表尾部的元素:
    RPOP mylist
    
  5. 获取列表指定范围的元素:
    LRANGE mylist 0 -1
    
  6. 获取列表长度:
    LLEN mylist
    
  7. 通过索引获取列表元素:
    LINDEX mylist 0
    
  8. 在列表中某个元素之前或之后插入值:
    LINSERT mylist BEFORE|AFTER pivot value
    
  9. 移除列表中与给定值相等的元素:
    LREM mylist 0 "value"
    
  10. 从列表的一个尾部或多个尾部列表移除元素并将其添加到另一个列表的头部:
    RPOPLPUSH source destination
    
  11. 对列表进行修剪,保留指定范围内的元素:
    LTRIM mylist 0 2
    
  12. 阻塞式的列表弹出操作:
    BLPOP key [key ...] timeout
    
  13. 阻塞式的列表弹出操作:
    BRPOP key [key ...] timeout
    
  14. 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端:
    RPOPLPUSH source destination
    
  15. 将列表 source 中的最后一个元素(尾元素)弹出,并插入到列表 destination 开头并返回给客户端:
    BRPOPLPUSH source destination timeout
    
  16. 返回列表中指定区间内的元素,支持负数索引:
    LRANGE mylist 0 -1
    
  17. 将一个或多个值插入到已存在的列表头部:
    LPUSHX mylist "value1" "value2"
    
  18. 将一个或多个值插入到已存在的列表尾部:
    RPUSHX mylist "value1" "value2"
    
  19. 移除并获取列表指定范围内的元素:
    LTRIM mylist 0 2
    
  20. 从列表的一个尾部或多个尾部列表移除元素并将其添加到另一个列表的头部:
    RPOPLPUSH source destination
    
    

集合 (Sets):

  1. 将一个或多个成员添加到集合中:
    SADD myset "apple"
    
  2. 从集合中移除一个或多个成员:
    SREM myset "apple"
    
  3. 获取集合中的所有成员:
    SMEMBERS myset
    
  4. 判断成员是否属于集合:
    SISMEMBER myset "apple"
    
  5. 获取集合的成员数量:
    SCARD myset
    
  6. 返回多个集合的并集:
    SUNION key1 key2
    
  7. 返回多个集合的交集:
    SINTER key1 key2
    
  8. 返回多个集合的差集:
    SDIFF key1 key2
    
  9. 移除并返回集合中的一个随机元素:
    SPOP myset
    
  10. 从第一个集合移除成员并添加到另一个集合:
    SMOVE source destination "apple"
    
  11. 返回指定数量的随机元素:
    SRANDMEMBER myset 3
    
  12. 从集合中随机获取一个或多个元素:
    SRANDMEMBER myset 2
    
  13. 移除并返回集合中的一个随机元素:
    SPOP myset
    
  14. 迭代集合中的元素:
    SSCAN myset cursor [MATCH pattern] [COUNT count]
    
  15. 获取多个集合的并集并存储在一个新集合中:
    SUNIONSTORE destination key1 key2
    
  16. 获取多个集合的交集并存储在一个新集合中:
    SINTERSTORE destination key1 key2
    
  17. 获取多个集合的差集并存储在一个新集合中:
    SDIFFSTORE destination key1 key2
    
  18. 检查给定成员是否存在于集合:
    SSCAN myset cursor MATCH "pattern" COUNT count
    
  19. 返回集合的基数(集合中元素的数量):
    SCARD myset
    
  20. 获取指定范围的元素:
    SSCAN myset cursor COUNT count
    
    

有序集合 (Sorted Sets):

  1. 将一个或多个成员添加到有序集合,并指定分数:
    ZADD myzset 1 "one"
    
  2. 获取有序集合中指定范围的成员:
    ZRANGE myzset 0 -1 WITHSCORES
    
  3. 获取有序集合中指定分数范围的成员:
    ZRANGEBYSCORE myzset 0 5
    
  4. 返回有序集合中成员的排名:
    ZRANK myzset "one"
    
  5. 获取有序集合中成员的分数:
    ZSCORE myzset "one"
    
  6. 移除有序集合中的一个或多个成员:
    ZREM myzset "one"
    
  7. 返回有序集合的成员数量:
    ZCARD myzset
    
  8. 返回有序集合中指定分数范围内的成员数量:
    ZCOUNT myzset 0 5
    
  9. 对有序集合中指定成员的分数进行增减操作:
    ZINCRBY myzset 5 "one"
    
  10. 返回有序集合中指定范围内的成员和分数:
    ZRANGE myzset 0 -1 WITHSCORES
    
  11. 返回有序集合中指定分数范围内的成员和分数:
    ZRANGEBYSCORE myzset 0 5 WITHSCORES
    
  12. 获取有序集合中指定范围的成员,按分数从高到低排序:
    ZREVRANGE myzset 0 -1 WITHSCORES
    
  13. 获取有序集合中指定分数范围的成员,按分数从高到低排序:
    ZREVRANGEBYSCORE myzset 5 0 WITHSCORES
    
  14. 移除有序集合中指定排名范围内的成员:
    ZREMRANGEBYRANK myzset 0 1
    
  15. 移除有序集合中指定分数范围内的成员:
    ZREMRANGEBYSCORE myzset 0 5
    

总结

这些示例展示了如何使用Redis中的不同命令执行各种操作,包括设置和获取值、操作列表、集合和有序集合,以及如何管理哈希中的字段。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星光不问赶路人-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值