首页 > 代码库 > Redis常用的基本命令整理

Redis常用的基本命令整理

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 的值,而不会影响其他数值

 

 

原文链接:http://www.maiziedu.com/wiki/django/command/

 

Redis常用的基本命令整理