Redis随笔

来源:http://www.chinese-glasses.com 作者:Web前端 人气:81 发布时间:2020-05-06
摘要:EXPIREAT: 常用命令: 5、使用EXPIRE/PEXPIRE设置的过期时间为负数或者使用EXPIREAT/PEXPIREAT设置过期时间戳为过去的时间会导致key被删除 mset、mget,基本语法如下:MSET key1 "Hello" key2 "World" .

EXPIREAT:

常用命令:

5、使用EXPIRE/PEXPIRE设置的过期时间为负数或者使用EXPIREAT/PEXPIREAT设置过期时间戳为过去的时间会导致key被删除

mset、mget,基本语法如下:MSET key1 "Hello" key2 "World" ...

Redis默认每秒进行10次过期扫描:

lpush、rpush、lpop、rpop、lrange、blpop(阻塞)

当使用PERSIST命令将一个设置了过期时间的key转变成一个持久化的key的时候,也会清除过期时间。

常用命令:

同时,为了保证不出现循环过度的情况,Redis还设置了扫描的时间上限,默认不会超过25ms。

get、set、incr、decr、getset

懒惰删除

2、Hash

3、PERSIST命令会清除过期时间

sadd、srem、spop(移除并返回集合中的一个随机元素)、sdiff(差集)、sinter(交集)、sunion(并集)、smembers(返回集合中的所有成员)

1、从过期字典中随机20个key2、删除这20个key中已过期的3、如果超过25%的key过期,则重复第一步

#Redis的五种数据类型

所谓懒惰删除就是在客户端访问该key的时候,redis会对key的过期时间进行检查,如果过期了就立即删除。

常用命令:

EXPIRE:

5、Sort Set

在使用例如:RENAME KEYA KEYB命令将KEYA重命名为KEYB,不管KEYB有没有设置过期时间,新的key KEYB将会继承KEY_A的所有特性。

zadd、zrange、zrem、zcard

而在使用INCR/LPUSH/HSET这种只是修改一个key的value,而不是覆盖整个value的命令,则不会清除key的过期时间。INCR:

常用命令:

2、INCR/LPUSH/HSET等命令则不会清除过期时间

hget、hset、hgetall,基本语法如下:HSET key field1 "foo"

定期删除的原理是,Redis会将所有设置了过期时间的key放入一个字典中,然后每隔一段时间从字典中随机一些key检查过期时间并删除已过期的key。

1、String

在Redis2.1.3以下的版本中,使用expire命令更新一个已经设置了过期时间的key的过期时间会失败。并且对一个设置了过期时间的key使用LPUSH/HSET等命令修改其value的时候,会导致Redis删除该key。

通过EXPIRE key seconds命令来设置数据的过期时间,PERSIST命令清除已设置的过期时间重新将key变为持久的

在使用DEL、SET、GETSET等会覆盖key对应value的命令操作一个设置了过期时间的key的时候,会导致对应的key的过期时间被清除。

3、List

本文由10bet发布于Web前端,转载请注明出处:Redis随笔

关键词:

上一篇:没有了

下一篇:json常用的注解10bet:

最火资讯