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

前言

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


一、Redis是什么?

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

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

字符串 (Strings):

  1. 设置键的值:

    bash 复制代码
    SET mykey "Hello"
  2. 获取键的值:

    bash 复制代码
    GET mykey
  3. 设置多个键值对:

    bash 复制代码
    MSET key1 "value1" key2 "value2"
  4. 删除键:

    bash 复制代码
    DEL key1
  5. 将键的值递增1:

    bash 复制代码
    INCR counter
  6. 在键的值后追加内容:

    bash 复制代码
    APPEND mykey " World"
  7. 设置键的过期时间:

    bash 复制代码
    EXPIRE mykey 60
  8. 获取键的剩余生存时间:

    bash 复制代码
    TTL mykey
  9. 获取键值的子字符串:

    bash 复制代码
    GETRANGE mykey 0 3
  10. 获取键值的长度:

    bash 复制代码
    STRLEN mykey
  11. 获取多个键的值:

    bash 复制代码
    MGET key1 key2
  12. 设置键不存在时才设置键的值:

    bash 复制代码
    SETNX mykey "newvalue"
  13. 设置键的值并同时设置过期时间:

    bash 复制代码
    SETEX mykey 60 "value"
  14. 设置新值并返回旧值:

    bash 复制代码
    GETSET mykey "newvalue"
  15. 将键的值递增指定的步长:

    bash 复制代码
    INCRBY counter 5
  16. 将键的值递减1:

    bash 复制代码
    DECR counter
  17. 将键的值递减指定的步长:

    bash 复制代码
    DECRBY counter 3
  18. 设置位图中指定偏移量的值:

    bash 复制代码
    SETBIT mybitmap 7 1
  19. 获取位图中指定偏移量的值:

    bash 复制代码
    GETBIT mybitmap 7
  20. 统计位图中值为1的位的数量:

    bash 复制代码
    BITCOUNT mybitmap

哈希 (Hashes):

  1. 设置哈希字段的值:

    bash 复制代码
    HSET user:id:001 username Alice
  2. 获取哈希字段的值:

    bash 复制代码
    HGET user:id:001 username
  3. 设置多个哈希字段的值:

    bash 复制代码
    HMSET user:id:001 username Alice age 30
  4. 删除哈希字段:

    bash 复制代码
    HDEL user:id:001 age
  5. 获取哈希中所有字段和值:

    bash 复制代码
    HGETALL user:id:001
  6. 判断哈希字段是否存在:

    bash 复制代码
    HEXISTS user:id:001 username
  7. 获取哈希所有字段:

    bash 复制代码
    HKEYS user:id:001
  8. 获取哈希所有值:

    bash 复制代码
    HVALS user:id:001
  9. 哈希字段的值递增指定的步长:

    bash 复制代码
    HINCRBY user:id:001 age 5
  10. 获取哈希中字段的数量:

    bash 复制代码
    HLEN user:id:001
  11. 获取多个哈希字段的值:

    bash 复制代码
    HMGET user:id:001 username age
  12. 当字段不存在时设置哈希字段的值:

    bash 复制代码
    HSETNX user:id:001 email "alice@example.com"
  13. 获取哈希字段值的长度:

    bash 复制代码
    HSTRLEN user:id:001 username
  14. 迭代哈希中的元素:

    bash 复制代码
    HSCAN user:id:001 0 MATCH "user*"
  15. 哈希字段的值递增指定的浮点数步长:

    bash 复制代码
    HINCRBYFLOAT user:id:001 balance 10.5
  16. 从哈希中随机获取指定数量的字段:

    bash 复制代码
    HRANDFIELD user:id:001 2
  17. 获取哈希字段值的长度:

    bash 复制代码
    HSTRLEN user:id:001 username
  18. 迭代哈希中的元素:

    bash 复制代码
    HSCAN user:id:001 0 MATCH "user*"
  19. 哈希字段的值递增指定的浮点数步长:

    bash 复制代码
    HINCRBYFLOAT user:id:001 balance 10.5
  20. 从哈希中随机获取指定数量的字段:

    bash 复制代码
    HRANDFIELD user:id:001 2

列表 (Lists):

  1. 将一个值插入到列表的头部:

    bash 复制代码
    LPUSH mylist "world"
  2. 将一个值插入到列表的尾部:

    bash 复制代码
    RPUSH mylist "world"
  3. 移除并获取列表头部的元素:

    bash 复制代码
    LPOP mylist
  4. 移除并获取列表尾部的元素:

    bash 复制代码
    RPOP mylist
  5. 获取列表指定范围的元素:

    bash 复制代码
    LRANGE mylist 0 -1
  6. 获取列表长度:

    bash 复制代码
    LLEN mylist
  7. 通过索引获取列表元素:

    bash 复制代码
    LINDEX mylist 0
  8. 在列表中某个元素之前或之后插入值:

    bash 复制代码
    LINSERT mylist BEFORE|AFTER pivot value
  9. 移除列表中与给定值相等的元素:

    bash 复制代码
    LREM mylist 0 "value"
  10. 从列表的一个尾部或多个尾部列表移除元素并将其添加到另一个列表的头部:

    bash 复制代码
    RPOPLPUSH source destination
  11. 对列表进行修剪,保留指定范围内的元素:

    bash 复制代码
    LTRIM mylist 0 2
  12. 阻塞式的列表弹出操作:

    bash 复制代码
    BLPOP key [key ...] timeout
  13. 阻塞式的列表弹出操作:

    bash 复制代码
    BRPOP key [key ...] timeout
  14. 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端:

    bash 复制代码
    RPOPLPUSH source destination
  15. 将列表 source 中的最后一个元素(尾元素)弹出,并插入到列表 destination 开头并返回给客户端:

    bash 复制代码
    BRPOPLPUSH source destination timeout
  16. 返回列表中指定区间内的元素,支持负数索引:

    bash 复制代码
    LRANGE mylist 0 -1
  17. 将一个或多个值插入到已存在的列表头部:

    bash 复制代码
    LPUSHX mylist "value1" "value2"
  18. 将一个或多个值插入到已存在的列表尾部:

    bash 复制代码
    RPUSHX mylist "value1" "value2"
  19. 移除并获取列表指定范围内的元素:

    bash 复制代码
    LTRIM mylist 0 2
  20. 从列表的一个尾部或多个尾部列表移除元素并将其添加到另一个列表的头部:

    bash 复制代码
    RPOPLPUSH source destination

集合 (Sets):

  1. 将一个或多个成员添加到集合中:

    bash 复制代码
    SADD myset "apple"
  2. 从集合中移除一个或多个成员:

    bash 复制代码
    SREM myset "apple"
  3. 获取集合中的所有成员:

    bash 复制代码
    SMEMBERS myset
  4. 判断成员是否属于集合:

    bash 复制代码
    SISMEMBER myset "apple"
  5. 获取集合的成员数量:

    bash 复制代码
    SCARD myset
  6. 返回多个集合的并集:

    bash 复制代码
    SUNION key1 key2
  7. 返回多个集合的交集:

    bash 复制代码
    SINTER key1 key2
  8. 返回多个集合的差集:

    bash 复制代码
    SDIFF key1 key2
  9. 移除并返回集合中的一个随机元素:

    bash 复制代码
    SPOP myset
  10. 从第一个集合移除成员并添加到另一个集合:

    bash 复制代码
    SMOVE source destination "apple"
  11. 返回指定数量的随机元素:

    bash 复制代码
    SRANDMEMBER myset 3
  12. 从集合中随机获取一个或多个元素:

    bash 复制代码
    SRANDMEMBER myset 2
  13. 移除并返回集合中的一个随机元素:

    bash 复制代码
    SPOP myset
  14. 迭代集合中的元素:

    bash 复制代码
    SSCAN myset cursor [MATCH pattern] [COUNT count]
  15. 获取多个集合的并集并存储在一个新集合中:

    bash 复制代码
    SUNIONSTORE destination key1 key2
  16. 获取多个集合的交集并存储在一个新集合中:

    bash 复制代码
    SINTERSTORE destination key1 key2
  17. 获取多个集合的差集并存储在一个新集合中:

    bash 复制代码
    SDIFFSTORE destination key1 key2
  18. 检查给定成员是否存在于集合:

    bash 复制代码
    SSCAN myset cursor MATCH "pattern" COUNT count
  19. 返回集合的基数(集合中元素的数量):

    bash 复制代码
    SCARD myset
  20. 获取指定范围的元素:

    bash 复制代码
    SSCAN myset cursor COUNT count

有序集合 (Sorted Sets):

  1. 将一个或多个成员添加到有序集合,并指定分数:

    bash 复制代码
    ZADD myzset 1 "one"
  2. 获取有序集合中指定范围的成员:

    bash 复制代码
    ZRANGE myzset 0 -1 WITHSCORES
  3. 获取有序集合中指定分数范围的成员:

    bash 复制代码
    ZRANGEBYSCORE myzset 0 5
  4. 返回有序集合中成员的排名:

    bash 复制代码
    ZRANK myzset "one"
  5. 获取有序集合中成员的分数:

    bash 复制代码
    ZSCORE myzset "one"
  6. 移除有序集合中的一个或多个成员:

    bash 复制代码
    ZREM myzset "one"
  7. 返回有序集合的成员数量:

    bash 复制代码
    ZCARD myzset
  8. 返回有序集合中指定分数范围内的成员数量:

    bash 复制代码
    ZCOUNT myzset 0 5
  9. 对有序集合中指定成员的分数进行增减操作:

    bash 复制代码
    ZINCRBY myzset 5 "one"
  10. 返回有序集合中指定范围内的成员和分数:

    bash 复制代码
    ZRANGE myzset 0 -1 WITHSCORES
  11. 返回有序集合中指定分数范围内的成员和分数:

    bash 复制代码
    ZRANGEBYSCORE myzset 0 5 WITHSCORES
  12. 获取有序集合中指定范围的成员,按分数从高到低排序:

    bash 复制代码
    ZREVRANGE myzset 0 -1 WITHSCORES
  13. 获取有序集合中指定分数范围的成员,按分数从高到低排序:

    bash 复制代码
    ZREVRANGEBYSCORE myzset 5 0 WITHSCORES
  14. 移除有序集合中指定排名范围内的成员:

    bash 复制代码
    ZREMRANGEBYRANK myzset 0 1
  15. 移除有序集合中指定分数范围内的成员:

    bash 复制代码
    ZREMRANGEBYSCORE myzset 0 5

总结

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

相关推荐
一屉大大大花卷43 分钟前
初识Neo4j之入门介绍(一)
数据库·neo4j
周胡杰1 小时前
鸿蒙arkts使用关系型数据库,使用DB Browser for SQLite连接和查看数据库数据?使用TaskPool进行频繁数据库操作
前端·数据库·华为·harmonyos·鸿蒙·鸿蒙系统
wkj0011 小时前
navicate如何设置数据库引擎
数据库·mysql
赵渝强老师1 小时前
【赵渝强老师】Oracle RMAN的目录数据库
数据库·oracle
暖暖木头1 小时前
Oracle注释详解
数据库·oracle
御控工业物联网2 小时前
御控网关如何实现MQTT、MODBUS、OPCUA、SQL、HTTP之间协议转换
数据库·sql·http
夜斗小神社3 小时前
【黑马点评】(二)缓存
缓存
GJCTYU3 小时前
spring中@Transactional注解和事务的实战理解附代码
数据库·spring boot·后端·spring·oracle·mybatis
MicroTech20253 小时前
微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
数据库·科技·算法
Code季风3 小时前
SQL关键字快速入门:CASE 实现条件逻辑
javascript·数据库·sql