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:携带分数