Redis 从入门到入土⑧:常用命令

一、准备

1. redis-cli

执行命令
例:
远程 redis 服务上执行命令

1
redis-cli -h host -p port -a password

2. ping

该命令用于检测 redis 服务是否启动
例:

1
redis 127.0.0.1:6379> PING

二、Redis 键

1. 增删查改

1.1. set key value
赋值

  • setnx key value:key 不存在时设置
  • set key value xx:key 存在时才设置

1.2. get key
取值
1.3. del key [key…..]
可以删除一个或多个键,返回值是删除的键的个数,不支持通配符删除
1.4. mget key1 key2 key3
批量获取 key,原子操作
取不到的 key 返回 null
1.5. mset key1 value1 key2 value2
批量设置 key-value
1.6. getset key newvalue
设值后返回旧值
1.7. append key value
追加值

2. key 信息

2.1. keys

  • ? 匹配一个字符
    • 匹配任意个(包括 0 个)字符
  • [] 匹配括号间的任一个字符,可以使用 “-“ 符号表示一个范围,如 a [b-d] 可以匹配 “ab”,”ac”,”ad”
  • \x 匹配字符 x,用于转义符号,如果要匹配 “?” 就需要使用?

注: 一般不在生产环境中使用
2.2. dbsize
计算 key 的总数
2.3. exists key
如果存在,返回整数类型 1 ,否则返回 0
2.4. type key
获得键值的数据类型
返回值可能是 string (字符串类型) hash (散列类型) list (列表类型) set (集合类型) zset (有序集合类型)

3. 自增 / 自减

3.1. incr key
当存储的字符串是整数形式时,redis 提供了一个使用的命令 incr 作用是让当前的键值递增,并返回递增后的值
当要操作的键不存在时会默认键值为 0 ,所以第一次递增后的结果是 1 ,当键值不是整数时 redis 会提示错误
3.2. incrby key increment
通过 increment 参数指定一次增加的数值
incrby num 2
3.3. decr key
自减
同 incr key
3.4. decrby key
自减
同 incrby key increment

4. 过期时间

4.1. expire key seconds
设置过期时间
4.2. ttl key
查询 key 的剩余过期时间
-2: 不存在 key
-1: 未设置过期时间
4.3. persist key
去掉 key 的过期时间

5. hash

5.1. hset key field value
设置 hash key 对应 的 field 的 value
5.2. hget key field
获取 hash key 对应 的 field 的 value
5.3. hdel key field
删除 hash key 对应 的 field 的 value
5.4. hexists key field
判断 hash key 是否有 field
5.5. hlen key
获取 hash key field 的数量
5.6. hgetall key
获取 hash key 所有的 field 和 value
5.7. hkeys key
获取 hash key 所有的 field
5.8. hvals key
获取 hash key 所有的 field 中的 value

6. list

6.1. 插入

  • rpush key value1 value2 value3: 列表右端插入多个值
  • lpush key value1 value2 value3: 列表左端插入多个值
  • linsert key before|after value newValue: 在键为 key 的 list 的指定值 value 的 前 | 后 插入 newValue

6.2. 删除

  • lpop key: 从列表左侧弹出一个元素
  • rpop key: 从列表右侧弹出一个元素
  • lrem key count value: 删除 count 个与 value 的值相等的值
    • count > 0: 从左到右删除 count 个与 value 的值相等的值
    • count < 0: 从右到左删除 count 个与 value 的值相等的值
    • count = 0: 删除所有与 value 的值相等的值
  • ltrim key start end: 按索引截取 [start, end] 范围内的值,范围外的值删除。索引从 0 开始

6.3. 查找

  • lrange key start end: 获取索引在 [start, end] 范围内的值。左边索引从 0 开始递增,右边索引从 -1 开始递减
  • lindex key index: 按索引获取值。左边索引从 0 开始递增,右边索引从 -1 开始递减
  • llen: 获取列表长度

6.4. 更新

  • lset key index newValue: 设置列表指定索引值为 newValue

7. set

7.1. 添加

  • sadd key element: 添加 element(若已存在,则添加失败)

7.2. 删除

  • spop key: 随机弹出一个元素
  • srem key element: 删除 element

7.3. 查找

  • scard key: 获取元素总数
  • sismember key element: 判断键为 key 的 set 中是否存在 element
  • srandmember key count: 从键为 key 的 set 中随机选出 count 个元素
  • smembers key: 获取键为 key 的 set 的全部元素(无序)

7.4. 差集、交集、并集

  • sdiff key1 key2: 求得键为 key1 、key2 的两个 set 的差集(key1 - key2)
  • sinter key1 key2: 求得键为 key1、key2 的两个 set 的交集
  • sunion key1 key2: 求得键为 key1、key2 的两个 set 的并集

8. zset

8.1. 添加

  • zadd key score element: 添加 score 和 element(可以多对)
  • zincrby key increScore element: 使 element 的分数增加 increScore

8.2. 删除

  • zrem key element: 删除 element
  • zremrangebyrank key startRank endRank: 删除排名在 [startRank, endRank] 范围内的升序元素,左边索引从 0 开始递增,右边索引从 -1 开始递减。
  • zremrangebyscore key startScore endScore: 删除分数在 [startScore, endScore] 范围内的升序元素,左边索引从 0 开始递增,右边索引从 -1 开始递减。

8.3. 查询

  • zcard key: 获取元素总数
  • zount key startScore endScore: 获取分数在 [startScore, endScore] 范围内的元素个数,左边索引从 0 开始递增,右边索引从 -1 开始递减。
  • zrank key element: 获取 element 的排名(升序)
  • zscore key element: 获取 element 的分数
  • zrange key startRank endRank [withscores]: 获取排名在 [startRank, endRank] 范围内的升序元素,左边索引从 0 开始递增,右边索引从 -1 开始递减。
    • withscores:携带分数
  • **zrangebyscore key startScore endScore [withscores]: ** 获取分数在 [startScore, endScore] 范围内的升序元素,左边索引从 0 开始递增,右边索引从 -1 开始递减。
    • withscores:携带分数

参考