Redis所有命令文档网站: https://redis.io/commands/

Windows 可以采用 redis-cli.exe 来去执行

Mac/Linux 直接启动 ./redis-cli.sh -p 6379

Redis-Cli连接Redis服务器

# 连接的完整参数 -h host 也就是IP, -p port 指定端口, -a password 密码
./redis-cli -h host -p port -a password

# 完整实例:
./redis-cli -h 127.0.0.1 -p 6379 -a 123456

# 一般来说 本机直接即可
./redis-cli

String常用命令

Redis键的分级存储

Hash常用命令:无序,不可重复

Hash存储样式

List常用命令:有序,可重复

List存储样式

如何利用Redis List结构实现栈、队列、阻塞队列?⭐️⭐️⭐️

栈:先进后出,插入值使用LPUSH,读取时使用LPOP。可以理解为 入口出口一个地方

队列:先进先出,插入值使用LPUSH,读取时使用RPOP。可以理解为 入口出口不是一个地方

阻塞队列:因为队列是先进先出结构,阻塞队列使用读取的阻塞命令即可。插入值使用LPUSH,读取使用BRPOP

SET结构:无需,不可重复,支持并集、差集、交集

好友关系Demo

# 定义一些好友元素关系
SADD zs A B C
SADD ls B C D

# 查询zs与ls共同好友
SINTER zs ls

# 查询zs比ls多的好友
SDIFF zs ls

# 查询B是不是zs的好友  (返回1 代表true,返回0代表false)
SISMEMBER zs D

SortedSet基本命令:类似于TreeSet 可排序、不可重复。常用于排行榜

注意:默认命令是升序的,如果需要设定倒叙,请将命令首字母Z后面添加REV,代表降序

榜单排名Demo

# 插入数据
ZADD Pay-List 10 zhangsan 15 lisi 100 wangwu 1000 zhaoliu

# 获取榜单前3名,注意,命令参数是索引
ZRANGE Pay-List 0 2

# 获取李四的排名 注意,返回的是索引,真实排名需要+1
ZRANK lisi

下文本来想删掉的,但整理了很久,留着吧

  • set 插入一个键值对,注意set未来可能会替换一些无效的key了
    • 格式:set <key> <value> <可选过期单位,EX代表描述> <可选过期时间>
  • setex 插入一个键值对,可指定过期时间
    • 格式:setex <key> <过期秒数> <value>
  • append 键存在且不是数字,拼接一个字符串到value在后面。如果键不存在,在操作之前将value设定为空字符串
    • 格式:append <key> <String>
  • exists 判断(1个或多个)key是否存在,返回存在key的数量
    • 格式:exists <key… 可输入多个key,以空格分开>
  • get 读取键值
    • 格式:get <key>
  • getex 读取键值后,可指定过期时间(可选时间单位)
    • 格式:getex <key> <可选时间单位,EX代表秒数> <时间数值>
  • del 删除某个键值对,返回删除的键数
    • 格式:del <key… 可输入多个key,以空格分开>
  • incr 将键对应的value加1。如果该键不存在,在执行操作之前将value设置为0
    • 格式:incr <key>
  • decr 将键对应的value减1。如果该键不存在,在执行操作之前将value设置为0
    • 格式:decr <key>
  • incrby 将存储的数字value增加任意数字。如果该键不存在,在执行操作之前将value设置为0
    • 格式:incrby <key> <number>
  • decrb 将存储的数字value减少任意数字。如果该键不存在,在执行操作之前将value设置为0
  • expire 给key 指定过期时间
    • 格式:expire <key> <过期秒数>
  • ttl 显示键的过期时间 (2.8版本以后 -1:没有设置过期时间,-2:不存在或已经过期)
    • 格式:ttl <key>
  • rename 重命名key的名称
    • 格式:rename <old-key> <new-key>

特别说明:incr、decr、incrby等一系列操作,不得将数据超过2的32次方减一与-2的32次方