SET key value [EX seconds] [PX milliseconds] [NX|XX]
设置缓存K-V,如果key已经存在,则重写
EX seconds --设置过期时间,单位:seconds
PX milliseconds --设置过期时间,单位:milliseconds
NX --只有key不存在时才设置K-V
XX --只有key存在时才设置K-V //NX和XX只能二选一
SETNX key value
当key不存在时,设置缓存K-V,相当于SET key value NX
MSET key value [key value…]
设置多个K-V
GET key
获取key的缓存值
如果key不存在,返回“nil”
如果缓存值不是string类型,则报错(因为GET只处理string)
MGET key [key…]
返回多个keys的缓存值
如果缓存值类型不是string或key不存在,则缓存nil,因为该操作不会失败
INCR key
将缓存值加1(本操作只支持64位带符号整型)
如果key不存在,执行操作之前先将缓存值设置为0,然后再将缓存值加1
如果key的缓存值type不正确,或者string值不能被转换为整数,操作报错
INCRBY key increment
将缓存值增加给定的值
DECR key
将缓存值减1
DECRBY key increment
将缓存值减少给定的值
RENAME key newkey
重全名key
如果新key与旧key一样,或者key不存在,会报错
如果新key已经存在,则重写
EXISTS key [key…]
返回存在的keys的数目,检查key是否存在,返回0表示一个key都没找到,支持多个key
DEL key [key…]
删除给定的keys,如果key不存在,忽略。返回删除成功的keys数目。比如:del key1 key2,删除两个key,如果返回的数目是2,表示两个key都删除了,如果是0或1,就代表有key没有被删除成功
KEYS pattern
返回所有匹配给定模式的keys的list
支持全局样式匹配
h?llo matches hello, hallo and hxllo //?代表中间任意一个字母
h*llo matches hllo and heeeello //*可以代表中间任意数字
h[ae]llo matches hello and hallo, but not hillo //中间可以是a或者e
h[^e]llo matches hallo, hbllo, ... but not hello //非e
h[a-b]llo matches hallo and hbllo //a到b中的任意一个
TTL key
返回给定key的存活时间(seconds)
返回-2,表示key不存在
返回-1,表示key存在,但没有设置过期时间
PERSIST key
删除给定key设置的过期时间,让该key不过期
返回1,表示成功删除key的过期时间
返回0,表示key不存在,或者没有设置过期时间
EXPIRE key seconds
为给定的key设置过期时间
一个key的timeout,只有当该key被SET或GETSET重写后才会被删除。这就意味着,所有的修改操作(但未替换)都不会影响timeout(如:INCR,DECR等)
通过PERSIST可以删除过期时间
如果执行RENAME,则key的过期时间会继承当前key的值。比如key1过期时间是200,key2没有过期时间,或者过期时间是其他值。当前还有100秒过期,当执行rename后,如,rename key1 key2,则key2的过期时间就会被key1的100秒来替换掉
FLUSHALL
清空所有缓存数据
FLUSHDB
清空当前DB的缓存数据,因为DB有数值,1,2,3,4等,如果进入的是第1的数值,那么执行flushDB会清空1的值,而不会影响其他数值
文章来源:麦子学院
网友评论