Redis常用指令整理

231 阅读3分钟

常用指令

1. key

expire key seconds

  • 设置键的过期时间为seconds秒
127.0.0.1:6379> set test test
OK
127.0.0.1:6379> get test
"test"
127.0.0.1:6379> expire test 4
(integer) 1
127.0.0.1:6379> get test
"test"
127.0.0.1:6379> get test
(nil)

pexpire key milliseconds

  • expire key seconds,区别在于单位毫秒

expireat key timestamp

  • 将键的过期时间设置为timestamp所指定的秒数
127.0.0.1:6379> expireat test 1645024944
(integer) 1
127.0.0.1:6379> get test
"test"
127.0.0.1:6379> ttl test
(integer) 18

ttl key

  • 查询键的剩余生存时间
127.0.0.1:6379> expire test 100
(integer) 1
127.0.0.1:6379> ttl test
(integer) 97

persist key

  • 移除过期时间
127.0.0.1:6379> set test test
OK
127.0.0.1:6379> EXPIRE test 10
(integer) 1
127.0.0.1:6379> ttl test
(integer) 7
127.0.0.1:6379> persist test
(integer) 1
127.0.0.1:6379> ttl test
(integer) -1

2. String

get key

  • 获取指定key的值

set key value [EX seconds|PX milliseconds] [NX|XX]

  • EX seconds:将键的过期时间设置为seconds秒
    • set key value EX seconds 等同于 setex key seconds value
  • PX milliseconds:将键的过期时间设置为milliseconds毫秒
    • set key value PX milliseconds 等同于 PSETEX key milliseconds value

incr key

  • 将key中存储的数字值加1
  • 如果存储的内容非数字类型,会报错:(error) ERR wrong number of arguments for 'incr' command
127.0.0.1:6379> set num 1
OK
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"

mget key [key ...]

  • 获取一个或多个给定key的值
127.0.0.1:6379> set test1 1
OK
127.0.0.1:6379> set test2 2
OK
127.0.0.1:6379> mget test1 test2
1) "1"
2) "2"

3. Hash

hmset key field value [field value ...]

  • 将多个field-value(阈-值)对设置到散列表key中

hset key field value

  • 将field-value(阈-值)对设置到散列表key中

hget key field

  • 获取key中对应field的值

hmget key field [field ...]

  • 获取key中对应(一个或多个)field的值

hgetall key

  • 获取key对应的所有field-value

hdel key field [field ...]

  • 删除key对应的(一个或多个)field的值
127.0.0.1:6379> hmset map test1 1 test2 2
OK
127.0.0.1:6379> hmget map test1 test2
1) "1"
2) "2"
127.0.0.1:6379> hget map test1
"1"
127.0.0.1:6379> hset map test3 3
(integer) 1
127.0.0.1:6379> hgetall map
1) "test1"
2) "1"
3) "test2"
4) "2"
5) "test3"
6) "3"
127.0.0.1:6379> hdel map test1 test2
(integer) 2
127.0.0.1:6379> hgetall map
1) "test3"
2) "3"

4. List

lpush key value [value ...]

  • 将一个或多个值插入队列头部

rpush key value [value ...]

  • 将一个或多个值插入队列尾部

lrange key start stop

  • 获取列表中指定范围的元素
  • start,end:表示区间偏移量,0代表第一个元素,1代表第二个元素,-1表示最后一个元素
    • lrange key 0 -1:查询所有元素

llen key

  • 获取列表长度

lindex key index

  • 通过索引获取列表中的元素
  • index:偏移量,0代表第一个元素,1代表第二个元素,-1表示最后一个元素
    • lindex list 0:获取list元素的第一个元素的值
    • lindex list -1:获取list元素的最后一个元素的值

ltrim key start stop

  • 对一个列表进行修剪,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
  • start,end:表示区间偏移量,0代表第一个元素,-1表示最后一个元素
127.0.0.1:6379> rpush list 1 2
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "1"
2) "2"
127.0.0.1:6379> lpush list 3 4
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "4"
2) "3"
3) "1"
4) "2"
127.0.0.1:6379> lrange list 0 1
1) "4"
2) "3"
127.0.0.1:6379> lrange list -2 -1
1) "1"
2) "2"
127.0.0.1:6379> llen list
(integer) 4
127.0.0.1:6379> lindex list 0
"4"
127.0.0.1:6379> lindex list -1
"2"
127.0.0.1:6379> ltrim list 1 2
OK
127.0.0.1:6379> lrange list 0 -1
1) "3"
2) "1"

5. Set

sadd key member [member ...]

  • 向集合中添加一个或多个成员

scard key

  • 获取集合的成员数

smembers key

  • 返回集合中的所有成员

sismember key member

  • 判断member元素是否存在与集合key中
    • 0:代表不存在
    • 1:代表存在

srem key member [member ...]

  • 移除集合中的一个或多个成员
127.0.0.1:6379> sadd set 1 2 3
(integer) 3
127.0.0.1:6379> scard set
(integer) 3
127.0.0.1:6379> smembers set 
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sismember set 1
(integer) 1
127.0.0.1:6379> sismember set 4
(integer) 0
127.0.0.1:6379> srem set 1
(integer) 1
127.0.0.1:6379> smembers set 
1) "2"
2) "3"

6. ZSet

// todo

7. Bitmap

// todo

8. HyperLongLog

// todo

9. Geospatial

// todo

10. 其他

select index

  • index:切换目标数据库
  • 单机服务器默认创建16个服务器,节点数据库只能使用0号数据库
127.0.0.1:6379> set test test
OK
127.0.0.1:6379> get test
"test"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get test
(nil)

参考