redis命令不区分大小写。
1.设置键值对:
SET keyName value
键值对是大小写敏感的。如果键或值带有空格,需要用引号,双引号和单引号都可以。
2.获取值:
GET keyName
获取不存在的值时:
如果键是带空格的,需要引号。
3.查看某些键是否存在:
EXISTS keyNameList
返回有几个键是存在的,当只有一个键名时,即可查看该键是否存在。
4.删除一个键值对:
DEL kayNameList
返回删除了几个键值对。
5.自增:
INCR keyName
只能自增数值(设置键值对时即使是用引号括起来数值也算数值而不是字符串),如果自增的值类型错误:
INCR自增不存在的键时,设置此键并将值设为1:
以下过程在一个人使用时结果等同于INCR count
:
x = GET count
x = x + 1
SET count x
但在多人使用时,会出现并发问题,而INCR是原子操作。redis的所有命令都是原子操作。
6.增加数值:
INCRBY keyName increment
只能增加数值。
当增加数值的键不存在时:
7.自减:
DECR keyName
如上图,也能自减不存在的键。
8.减少数值:
DECRBY keyName decrement
可以减少不存在的键:
9.设置键值对的生存时间:
EXPIRE keyName seconds
设置生存时间的五秒后获取该键值对:
给不存在的键值对设置生存时间:
给已经过期的键值对设置生存时间,第二条语句在a过期后发出:
10.获取键值对当前剩余的生效时间:
TTL keyName
如果键值对已经失效,返回值为-2,上例设置完生存时间的100s后:
对不存在的键获取其生存时间:
对永久有效的键值对获取其生存时间返回-1:
SET一个键时,生存时间会重置:
在设置一个键时通过EX选项设置其生存时间:
11.将键值对的生存时间改为永久:
PERSIST keyName
对已经过期的键值对,该命令不起作用:
PEXPIRE和PTTL作用与EXPIRE和TTL相似,但它们的单位是毫秒。
12.数据结构list是一系列有顺序的值。有一系列对list操作的函数。大多redis中的数据结构不用先创建就能直接使用这些函数操作。访问list的头尾附近是很快的。
13.向list中加入值:
RPUSH listName valueList
LPUSH listName valueList
list不能用get获取:
14.获取list中值:
LRANGE keyName start end
start和end表示list中的元素下标,从0开始计算下标,范围是闭区间。
end可以是负数,表示尾部的第几个元素,-1表示最后一个元素。
如果start或end超出元素范围:
15.删除list中的值
RPOP keyName
LPOP keyName
这两个命令返回被删除的值,删除元素和将元素返回到客户端是一个原子操作:
此时list中只有一个元素了:
16.获取list中的元素数:
LLEN keyName
17.set是另一个数据结构,其中存储的元素没有特定的顺序且每个元素只会出现一次。查看set中是否有给定元素非常快。
18.给set中增加元素:
SADD keyName valueList
该命令返回本次操作向集合中添加了几个元素:
向set中添加已有元素返回0:
19.删除set中元素:
SREM keyName valueList
此命令返回值为被删除的元素数:
20.检查一个元素是否存在于set中:
SISMEMBER keyName value
21.返回set中的全部元素:
SMEMBERS keyName
22.返回多个set的并:
SUNION keyNameList
23.删除set中元素:
SPOP keyName count
此命令返回被删除的元素,由于set中的元素是无序的,因此被删除的元素也是无序的:
现在set中的元素:
24.随机返回set中的元素:
SRANDMEMBER keyName count
如果count为负数,则可能会返回重复的元素:
如果count大于元素总数:
25.sorted set与set相比,其中的元素与一个分数相联系,分数用来排序整个sorted set。
26.向sorted set中添加元素:
ZADD keyName score value
27.查看sorted set中元素:
ZRANGE keyName start end withscores
28.hashes也是一种数据结构,它含多个string键值对,因此它适合存放对象。
29.向hashes中存放键值对:
HSET keyName key value
当hashes中不存在此键时,此命令返回1,否则返回0:
添加已经存在的键:
返回值为0,值被修改了。
30.获取hashes中的值:
HGETALL keyName
31.同时设置hashes中的多个字段:
HMSET keyName field1 value1 field2 value2 ...
32.获取hashes中的单个字段值:
HGET keyName field
33.删除hashes中的一个字段:
HDEL keyName field
34.增加hashes中的一个数字字段值(increment可正可负):
HINCRBY kayName field increment
增加hashes中不存在的字段的值: