Redis快速入门——Redis的常见命令和客户端使用

Redis通用命令

  1. KEYS:这条指令用于查找符合给定模板的所有键。例如,如果要查找所有以 “user_” 开头的键,可以使用以下命令:

    KEYS user_*
    

    这将返回所有以 “user_” 开头的键的列表。

  2. DEL:DEL 指令用于删除指定的键。例如,要删除名为 “user_123” 的键,可以使用以下命令:

    DEL user_123
    

    这将删除名为 “user_123” 的键及其关联的值。

  3. EXISTS:EXISTS 指令用于检查键是否存在。例如,要检查名为 “user_123” 的键是否存在,可以使用以下命令:

    EXISTS user_123
    

    如果键存在,它将返回 1;如果键不存在,它将返回 0。

  4. EXPIRE:EXPIRE 指令用于为键设置一个存活时间(过期时间),到期后键会自动被删除。时间以秒为单位。例如,要设置 “user_123” 键的存活时间为 60 秒,可以使用以下命令:

    EXPIRE user_123 60
    

    这将使键 “user_123” 在 60 秒后被自动删除。

  5. TTL:TTL 指令用于获取键的剩余存活时间(以秒为单位)。例如,要查看 “user_123” 键的剩余存活时间,可以使用以下命令:

    TTL user_123
    

    如果键存在且设置了过期时间,它将返回剩余的秒数;如果键不存在或未设置过期时间,它将返回 -1。

String类型的常见命令

  1. SET: 设置一个 String 类型的键值对。例如,将键名为 “name” 的键设置为 “John”,可以使用以下命令:

    SET name "John"
    
  2. GET: 获取一个 String 类型键的值。例如,要获取键名为 “name” 的键的值,可以使用以下命令:

    GET name
    

    如果键存在,它将返回键的值;如果键不存在,它将返回 nil。

  3. MSET: 批量设置多个 String 类型的键值对。例如,要同时设置 “name” 和 “age” 两个键的值,可以使用以下命令:

    MSET name "John" age "25"
    
  4. MGET: 批量获取多个 String 类型键的值。例如,要获取 “name” 和 “age” 两个键的值,可以使用以下命令:

    MGET name age
    

    它将返回一个包含键对应的值的列表。

  5. INCR: 将一个整型键的值递增 1。例如,要让键名为 “count” 的键递增 1,可以使用以下命令:

    INCR count
    
  6. INCRBY: 将一个整型键的值按指定步长递增。例如,要让键名为 “num” 的键递增 2,可以使用以下命令:

    INCRBY num 2
    
  7. INCRBYFLOAT: 将一个浮点型键的值按指定步长递增。例如,要让键名为 “price” 的键递增 0.5,可以使用以下命令:

    INCRBYFLOAT price 0.5
    
  8. SETNX: 添加一个 String 类型的键值对,前提是该键不存在。例如,如果要添加键名为 “status”,值为 “active” 的键值对,但只有在 “status” 键不存在时才执行,可以使用以下命令:

    SETNX status "active"
    

    如果键不存在,它将设置键值对;如果键已存在,它将不执行任何操作。

  9. SETEX: 添加一个带有过期时间的 String 类型的键值对。例如,要添加一个键名为 “token”,值为 “abcd1234” 的键值对,并且设置过期时间为 60 秒,可以使用以下命令:

    SETEX token 60 "abcd1234"
    

    在 60 秒后,键 “token” 将会自动被删除。

Hash类型的常见命令

  1. HSET: 添加或修改一个 Hash 类型键的字段值。例如,要将键名为 “user” 的 Hash 类型键的 “name” 字段设置为 “John”,可以使用以下命令:

    HSET user name "John"
    
  2. HGET: 获取一个 Hash 类型键的字段值。例如,要获取键名为 “user” 的 Hash 类型键的 “name” 字段的值,可以使用以下命令:

    HGET user name
    

    如果字段存在,它将返回该字段的值;如果字段不存在,它将返回 nil。

  3. HMSET: 批量添加多个 Hash 类型键的字段值。例如,要同时设置 “user” 键的 “name” 和 “age” 字段的值,可以使用以下命令:

    HMSET user name "John" age "25"
    
  4. HMGET: 批量获取多个 Hash 类型键的字段值。例如,要获取 “user” 键的 “name” 和 “age” 字段的值,可以使用以下命令:

    HMGET user name age
    

    它将返回一个包含字段对应的值的列表。

  5. HGETALL: 获取一个 Hash 类型键中的所有字段和值。例如,要获取 “user” 键中的所有字段和值,可以使用以下命令:

    HGETALL user
    

    它将返回一个包含所有字段和值的列表,按照字段和值的交替顺序排列。

  6. HKEYS: 获取一个 Hash 类型键中的所有字段。例如,要获取 “user” 键中的所有字段,可以使用以下命令:

    HKEYS user
    

    它将返回一个包含所有字段的列表。

  7. HVALS: 获取一个 Hash 类型键中的所有值。例如,要获取 “user” 键中的所有值,可以使用以下命令:

    HVALS user
    

    它将返回一个包含所有值的列表。

  8. HINCRBY: 让一个 Hash 类型键的字段值按指定步长递增。例如,要让键名为 “counter” 的键中的字段 “count” 递增 2,可以使用以下命令:

    HINCRBY counter count 2
    
  9. HSETNX: 添加一个 Hash 类型键的字段值,前提是该字段不存在。例如,如果要添加 “user” 键的 “email” 字段值为 “john@example.com”,但只有在 “email” 字段不存在时才执行,可以使用以下命令:

    HSETNX user email "john@example.com"
    

    如果字段不存在,它将设置字段值;如果字段已存在,它将不执行任何操作。

List类型的常见命令

  1. LPUSH: 向列表左侧插入一个或多个元素。例如,要向名为 “mylist” 的列表的左侧插入元素 “apple” 和 “banana”,可以使用以下命令:

    LPUSH mylist apple banana
    
  2. LPOP: 移除并返回列表左侧的第一个元素。例如,要从名为 “mylist” 的列表的左侧移除并返回第一个元素,可以使用以下命令:

    LPOP mylist
    

    如果列表为空,它将返回 nil。

  3. RPUSH: 向列表右侧插入一个或多个元素。例如,要向名为 “mylist” 的列表的右侧插入元素 “orange” 和 “melon”,可以使用以下命令:

    RPUSH mylist orange melon
    
  4. RPOP: 移除并返回列表右侧的第一个元素。例如,要从名为 “mylist” 的列表的右侧移除并返回第一个元素,可以使用以下命令:

    RPOP mylist
    

    如果列表为空,它将返回 nil。

  5. LRANGE: 返回指定范围内的所有元素。例如,要从名为 “mylist” 的列表中获取索引位置 0 到 2 的元素(包括两端),可以使用以下命令:

    LRANGE mylist 0 2
    

    它将返回一个包含指定范围内的所有元素的列表。

  6. BLPOP 和 BRPOP: 类似于 LPOP 和 RPOP,但在列表为空时等待指定时间,而不是直接返回 nil。例如,要从名为 “mylist” 的列表的左侧或右侧移除并返回第一个元素,并在列表为空时等待 5 秒,可以使用以下命令:

    BLPOP mylist 5
    

    如果列表为空,它将等待最多 5 秒,直到有元素可用,然后返回第一个元素。

Set类型的常见命令

  1. SADD: 向集合中添加一个或多个元素。例如,要向名为 “myset” 的集合中添加元素 “apple” 和 “banana”,可以使用以下命令:

    SADD myset apple banana
    
  2. SREM: 从集合中移除一个或多个指定的元素。例如,要从名为 “myset” 的集合中移除元素 “banana”,可以使用以下命令:

    SREM myset banana
    
  3. SCARD: 返回集合中元素的个数。例如,要获取名为 “myset” 的集合中的元素个数,可以使用以下命令:

    SCARD myset
    

    它将返回集合中元素的个数。

  4. SISMEMBER: 判断一个元素是否存在于集合中。例如,要判断名为 “myset” 的集合中是否存在元素 “apple”,可以使用以下命令:

    SISMEMBER myset apple
    

    如果 “apple” 存在于集合中,则返回 1,否则返回 0。

  5. SMEMBERS: 获取集合中的所有元素。例如,要获取名为 “myset” 的集合中的所有元素,可以使用以下命令:

    SMEMBERS myset
    

    它将返回一个包含集合中所有元素的列表。

  6. SINTER: 求多个集合的交集。例如,要求名为 “set1” 和 “set2” 的集合的交集,可以使用以下命令:

    SINTER set1 set2
    

    它将返回一个包含交集元素的集合。

  7. SDIFF: 求多个集合的差集。例如,要求名为 “set1” 和 “set2” 的集合的差集,可以使用以下命令:

    SDIFF set1 set2
    

    它将返回一个包含差集元素的集合。

  8. SUNION: 求多个集合的并集。例如,要求名为 “set1” 和 “set2” 的集合的并集,可以使用以下命令:

    SUNION set1 set2
    

    它将返回一个包含并集元素的集合。

Set命令的练习

将下列数据用RedisSet集合来存储:

张三的好友有:李四、王五、赵六
李四的好友有:王五、麻子、二狗

利用Set的命令实现下列功能:

计算张三的好友有几人
计算张三和李四有哪些共同好友
查询哪些人是张三的好友却不是李四的好友
查询张三和李四的好友总共有哪些人
判断李四是否是张三的好友
判断张三是否是李四的好友

将李四从张三的好友列表中移除

  1. 存储数据:

    SADD zhangsan 李四 王五 赵六
    SADD lisi 王五 麻子 二狗
    
  2. 计算张三的好友数量:

    SCARD zhangsan
    
  3. 计算张三和李四的共同好友:

    SINTER zhangsan lisi
    
  4. 查询哪些人是张三的好友但不是李四的好友:

    SDIFF zhangsan lisi
    
  5. 查询张三和李四的好友总共有哪些人:

    SUNION zhangsan lisi
    
  6. 判断李四是否是张三的好友:

    SISMEMBER zhangsan lisi
    
  7. 判断张三是否是李四的好友:

    SISMEMBER lisi zhangsan
    
  8. 将李四从张三的好友列表中移除:

    SREM zhangsan lisi

SortedSet类型的常见命令

  1. ZADD key score member: 添加一个或多个元素到 Sorted Set,如果已经存在则更新其 score 值。例如,要向名为 “myset” 的 Sorted Set 添加元素 “apple”,score 为 10:

    ZADD myset 10 apple
    
  2. ZREM key member: 删除 Sorted Set 中的一个指定元素。例如,要从名为 “myset” 的 Sorted Set 中移除元素 “apple”:

    ZREM myset apple
    
  3. ZSCORE key member : 获取 Sorted Set 中的指定元素的 score 值。例如,要获取名为 “myset” 的 Sorted Set 中元素 “apple” 的 score 值:

    ZSCORE myset apple
    
  4. ZRANK key member: 获取 Sorted Set 中的指定元素的排名。例如,要获取名为 “myset” 的 Sorted Set 中元素 “apple” 的排名:

    ZRANK myset apple
    
  5. ZCARD key: 获取 Sorted Set 中的元素个数。例如,要获取名为 “myset” 的 Sorted Set 中的元素个数:

    ZCARD myset
    
  6. ZCOUNT key min max: 统计 score 值在给定范围内的所有元素的个数。例如,要统计名为 “myset” 的 Sorted Set 中 score 值在 1 到 10 之间的元素个数:

    ZCOUNT myset 1 10
    
  7. ZINCRBY key increment member: 让 Sorted Set 中的指定元素自增,步长为指定的 increment 值。例如,要让名为 “myset” 的 Sorted Set 中元素 “apple” 的 score 值增加 5:

    ZINCRBY myset 5 apple
    
  8. ZRANGE key min max: 按照 score 排序后,获取指定排名范围内的元素。例如,要获取名为 “myset” 的 Sorted Set 中排名在 0 到 2 之间的元素:

    ZRANGE myset 0 2
    
  9. ZRANGEBYSCORE key min max: 按照 score 排序后,获取指定 score 范围内的元素。例如,要获取名为 “myset” 的 Sorted Set 中 score 值在 1 到 10 之间的元素:

    ZRANGEBYSCORE myset 1 10
    
  10. ZDIFF、ZINTER、ZUNION: 求差集、交集、并集。这些命令用于对多个 Sorted Set 进行操作,返回新的 Sorted Set。例如,求名为 “set1” 和 “set2” 的差集:

    ZDIFF output_key set1 set2

SortedSet命令练习

将班级的下列学生得分存入RedisSortedSet中:

Jack 85, Lucy 89, Rose 82, Tom 95, Jerry 78, Amy 92, Miles 76

并实现下列功能:
删除 Tom 同学
获取 Amy 同学的分数
获取 Rose 同学的排名
查询 80 分以下有几个学生
Amy 同学加 2
查出成绩前 3 名的同学

查出成绩80分以下的所有同学

# 连接 Redis
redis-cli

# 将学生得分存入 Sorted Set
ZADD class_scores 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles

# 删除Tom同学
ZREM class_scores Tom

# 获取Amy同学的分数
ZSCORE class_scores Amy

# 获取Rose同学的排名
ZRANK class_scores Rose

# 查询80分以下有几个学生
ZCOUNT class_scores 0 80

# 给Amy同学加2分
ZINCRBY class_scores 2 Amy

# 查出成绩前3名的同学,WITHSCORES 表示同时显示对应分数,而不仅仅是元素名称
ZREVRANGE class_scores 0 2 WITHSCORES


# 查出成绩80分以下的所有同学
ZRANGEBYSCORE class_scores 0 80

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m0_60434562

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

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

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

打赏作者

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

抵扣说明:

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

余额充值