Redis Key(键) 命令使用

本文主要用作学习记录,参考http://redisdoc.com/index.html

#dump key
序列化给定key,并返回被序列化的值
可用版本
>=2.6.0
时间复杂度
查找给定键的复杂度为 O(1) ,对键进行序列化的复杂度为 O(N*M) ,其中 N 是构成 key 的 Redis 对象的数量,而 M 则是这些对象的平均大小。
如果序列化的对象是比较小的字符串,那么复杂度为 O(1) 。
set greeting "hello,dumping world!"
dump greeting

#EXISTS key
检查给定key是否存在
可用版本
>=1.0.0
时间复杂度
O(1)
> set db redis
OK
> get db
"redis"
> exists db
(integer) 1

#EXPIRE key seconds
为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
可用版本
>=1.0.0
时间复杂度
O(1)
 set cache_page 30
OK
> ttl cache_page
(integer) -1
> expire cache_page 30
(integer) 1
> ttl cache_page
(integer) 22
> ttl cache_page
(integer) 20
> exists cache_page
(integer) 0
> ttl cache_page
(integer) -2

#EXPIREAT key timestamp
EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置生存时间。
不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
可用版本:
>= 1.2.0
时间复杂度:
O(1)
> set key1 "foot"
OK
> expireat key1 1517627239
(integer) 1
> ttl key1
(integer) 39
> ttl key1
(integer) 37

#KEYS pattern
不介意使用

#MIGRATE host port key destination-db timeout [COPY][REPLACE]
将 key 原子性地从当前实例传送到目标实例的指定数据库上,一旦传送成功, key 保证会出现在目标实例上,而当前实例上的 key 会被删除。
这个命令是一个原子操作,它在执行的时候会阻塞进行迁移的两个实例,直到以下任意结果发生:迁移成功,迁移失败,等待超时。
可选项:
COPY :不移除源实例上的 key 。
REPLACE :替换目标实例上已存在的 key 。
可用版本:
>= 2.6.0
时间复杂度:
这个命令在源实例上实际执行 DUMP 命令和 DEL 命令,在目标实例执行 RESTORE 命令,查看以上命令的文档可以看到详细的复杂度说明。
key 数据在两个实例之间传输的复杂度为 O(N) 。

> set key1 jenkin1
OK
> migrate 10.16.46.192 8008 key1 1000 COPY
(error) ERR value is not an integer or out of range
> migrate 10.16.46.192 8008 key1 0 1000 COPY
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8008 key1 0 1000 COPY
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8008 key1 0 1000
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8008 key1 0 1000 COPY REPLACE
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8018 key1 0 1000 COPY REPLACE
OK
> set leofu caiji
-> Redirected to slot [3972] located at 10.16.46.172:8009
OK
> migrate 10.16.46.192 8018 leofu 0 1000 COPY REPLACE
OK
> get leofu
"caiji"
10.16.46.172:8009> select 1
(error) ERR SELECT is not allowed in cluster mode
10.16.46.172:8009> migrate 10.16.46.192 8018 key1 0 1000 COPY REPLACE

#OBJECT
OBJECT subcommand [arguments [arguments]]
OBJECT 命令允许从内部察看给定 key 的 Redis 对象。

它通常用在除错(debugging)或者了解为了节省空间而对 key 使用特殊编码的情况。
当将Redis用作缓存程序时,你也可以通过 OBJECT 命令中的信息,决定 key 的驱逐策略(eviction policies)。
OBJECT 命令有多个子命令:

OBJECT REFCOUNT <key> 返回给定 key 引用所储存的值的次数。此命令主要用于除错。
OBJECT ENCODING <key> 返回给定 key 锁储存的值所使用的内部表示(representation)。
OBJECT IDLETIME <key> 返回给定 key 自储存以来的空闲时间(idle, 没有被读取也没有被写入),以秒为单位。
可用版本:
>= 2.2.3
时间复杂度:
O(1)

> object refcount key1
(integer) 1
10.16.46.172:8010> object idletime key1
(integer) 248
10.16.46.172:8010> object idletime key1
(integer) 252
10.16.46.172:8010> object encoding key1
"embstr"

>persist key
移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )。
可用版本:
>= 2.2.0
时间复杂度:
O(1)

10.16.46.172:8010> set mykey hello
-> Redirected to slot [14687] located at 10.16.46.171:8008
OK
10.16.46.171:8008> expire mykey 100
(integer) 1
10.16.46.171:8008> ttl mykey
(integer) 95
10.16.46.171:8008> persist mykey
(integer) 1
10.16.46.171:8008> ttl mykey
(integer) -1

>PEXPIRE key milliseconds
这个命令和EXPIRE命令的作用类似,但是它以毫秒为单位设置key的生存时间,而不像EXPIRE命令那样,以秒为单位。
可用版本:
>=2.6.0
时间复杂度:
O(1)
10.16.46.171:8008> set mykey hello
OK
10.16.46.171:8008> pexpire mykey 20000
(integer) 1
10.16.46.171:8008> ttl mykey
(integer) 13
10.16.46.171:8008> pttl mykey
(integer) 8971

>PEXPIREAT
同上

>PTTL
上面已经使用

>RANDOMKEY
从当前数据库中随机返回(不删除)一个 key 。
可用版本:
>= 1.0.0
时间复杂度:
O(1)
10.16.46.171:8008> randomkey
"itemService_itemPricingByType|75-978-466|-3"
10.16.46.171:8008> randomkey
"itemService_itemPricingByType|81-523-06

>RENAME key newKey
将 key 改名为 newkey 。
当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。
当 newkey 已经存在时, RENAME 命令将覆盖旧值。
可用版本:
>= 1.0.0
时间复杂度:
O(1)


>RENAMENX key newkey
当且仅当 newkey 不存在时,将 key 改名为 newkey 。
当 key 不存在时,返回一个错误。
可用版本:
>= 1.0.0
时间复杂度:
O(1)

>RESTORE key ttl serialized-value [REPLACE]
10.16.46.173:8029> get key1
-> Redirected to slot [9189] located at 10.16.46.172:8010
"jenkin1"
10.16.46.172:8010> restore key1 0 "\x00\xc0{\x06\x00\xde\x0f;a\xf5/[*" REPLACE
OK
10.16.46.172:8010> get key1
"123"


>SORT
sort key [by pattern][limit offset count][get pattern [get pattern ...]] [ASC|DESC][ALPHA][STORE destination]
返回或保存给定列表、集合、有序集合key中经过排序的元素。
排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较

一般sort用法
> lpush today_cost 30 1.5 10 8
(integer) 4
> sort today_cost
1) "1.5"
2) "8"
3) "10"
4) "30"
> sort today_cost desc
1) "30"
2) "10"
3) "8"
4) "1.5"

使用aplha修饰符对字符串进行排序
10.16.46.171:8008> lpush website "www.reddit.com"
(integer) 1
10.16.46.171:8008> lpush website "www.reddit.com1"
(integer) 2
10.16.46.171:8008> sort website alpha
1) "www.reddit.com"
2) "www.reddit.com1"


使用limit修饰符限制返回结果
10.16.46.172:8010> rpush rank 1 3 5 77 9
-> Redirected to slot [13998] located at 10.16.46.171:8008
(integer) 5
10.16.46.171:8008> rpush rank 2 4 6 8 10
(integer) 10
10.16.46.171:8008> sort rank
 1) "1"
 2) "2"
 3) "3"
 4) "4"
 5) "5"
 6) "6"
 7) "8"
 8) "9"
 9) "10"
10) "77"
10.16.46.171:8008> sort rank limit 0 5
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

>TTL
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值