Redis中常见的数据类型有:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Sorted_Set(有序集合)、BitMap(位图)
一、Key
1. DEL
删除一个或多个key
不存在的key会被忽略
DEL key
1
返回值:被删除key的数量
2. EXISTS
检查key是否存在
EXISTS key
0
返回值:若存在返回1,不存在返回0
3. EXPIRE
为给定的key设置生存时间,当时间为0时,自动删除key(单位秒)
EXPIRE key 10
1
返回值:设置成功返回1
不存在或者不能设置时间时,返回0
4. KEYS
模糊查询
KEYS 查询条件
返回值:符合查询条件的列表
5. PERSIST
移除key的存在时间限制
PERSIST key
1
返回值:移除成功,返回1
key不存在或者吗,没有设置存在时间,返回0
6. TTL
显示key的存在时间,单位为秒
TTL key
-2
返回值:不存在返回-2
存在但没设置存在时间,返回-1
存在且设置存在时间,返回剩余时间秒数
二、String
1. DECRBY
将key的值减去一个数,如果不存在,key的初始值为0,然后再执行DECRBY
如果包含错误类型,则返回一个错误
DECRBY key 10
-10
返回值:减去设置值后key的值
2. GET
返回key的字符串值
GET key
null
返回值:不存在时,返回null,存在则返回对应值
如果不是字符串类型,则返回一个错误
3. INCRBY
将key加上一个给定值,如果不存在则初始值为0,然后再执行INCRBY命令,如果包含错误类型,返回一个错误
INCRY key 10
10
返回值:可以加上给定值后的值
4. MGET
返回所有key值,可以是多个,如果里面的某个key不存在,则那个值返回null,其他正常返回
MGET key key1 key2
返回值:包含所有key值的列表
5. MSET
同时设置一个或多个key-value对,如果设置的key已经存在值,则覆盖旧值
MSET key "123" key1 "111" key2 "222"
OK
MGET key key1 key2
"123"
"111"
"222"
返回值:OK
6. SET
给key设置一个值,如果key已存在,则覆盖旧值,无视类型
SET key "123"
OK
GET key
"123"
返回值:Redis 2.6.12版本前,总是返回OK
Redis 2.6.12版本后,成功返回OK,如果设置了 NX 或者 XX ,
但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复
7. SETEX
给key设置一个值,并设置存在时间,会覆盖旧值,时间单位是秒
SETEX key 10 "123"
OK
GET key
"123"
返回值:设置成功返回OK
时间参数不合法,返回错误
8. SETNX
给key设置一个值,如果不存在,则SETNX不做任何动作
SETNX key "123"
1
SETNX key "000"
0
GET key
"123"
返回值:设置成功,返回1
设置失败,返回0
三、Hash
1. HSET
在哈希表key中设置一个fieId和对应的value值,若表不存在则先创建一个新表再执行命令,若fieId已存在值,则覆盖旧值
HSET [表名] [fieId] [value]
返回值:若表中不存在fieId,设置一个新的fieId并设值,成功返回1,若已存在fieId,则覆盖旧值,返回0
2. HGET
显示哈希表key中的给定域fieId的值
HGET [表名] [fieId]
返回值:若存在,返回fieId里的值,若不存在返回null
3. HDEL
删除哈希表key中的一个或多个域,不存在将被忽略
HDEL [表名] [fieId]
返回值:被成功移除的域的数量,不包括被忽略的域
4. HEXISTS
检查哈希表key中,fieId是否存在
HEXISTS [表名] [fieId]
返回值:存在返回1,不存在返回0
5. HGETALL
显示哈希表key中所有的fieId和value
HGETALL [表名]
返回值:列表形式显示表中的fieId和value,若表不存在,返回空列表
6. HINCRBY
给哈希表key的fieId的值加上一个数,也可以加负数,相当于减去这个数,
若不存在这个表,则会先创建一个表再执行HINCRBY操作,若fieId不存在,那么初始化为0再执行命令
HINCRBY [表名] [fieId][数值]
返回值:执行命令后fieId的值
7. HKEYS
显示哈希表key中的所有fieId
HKEYS [表名]
返回值:存在返回表中所有fieId的列表,若不存在返回空表
8. HMGET
显示哈希表key中一个或多个fieId的value值,
HMGET [表名] [fieIds]
返回值:存在就返回一个包含要查找的fieId的value值的列表,若表不存在就返回一个空表,
若fieId不存在,返回null,列表的值按fieId的顺序排列
10. HMSET
同时在哈希表key中设置多个fieId以及对应的value值,若fieId已存在会覆盖旧值,若表不存在,则先创建表再执行命令
HMSET [表名] [fieId] [value] [fieId] [value]
返回值:执行成功返回OK,若表不是hash类型返回错误
10.HVALS
显示哈希表key中的所有fieId的value值
HVALS [表名]
返回值:一个表中所有值的列表,若不存在,返回一个空表
四、List
1. BRPOP
在指定时间内弹出显示表中的值
BRPOP [表名] [时间]
返回值:如果指定时间内没有元素被弹出,则返回null和等待时间,
反之返回一个含有两个元素的列表,第一个值为被弹出值所在的表,第二个元素为 被弹出的值
2. LINDEX
显示列表key中下标为index的元素,下标(index)参数 start 和 stop 都以 0 为底,也就是说,
以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,
以此类推。如果 key 不是列表类型,返回一个错误
LINDEX [表名] [index]
返回值:列表key下标为index的元素,若下标value不存在列表值的范围内,返回null
3. LPOP
移除列表key的第一个元素,并显示删除的元素
LPOP [表名]
返回值:存在返回删除的元素,不存在返回null
4. LPUSH
将一个或多个值插入到列表key的表头,如果有多个值,则从左到右依次插入表头,
如果列表不存在,则先创建一个表再执行命令,若表存在但不是列表类型时,返回一个错误
LPUSH [表名] [value]
返回值:执行命令后,列表存在的值的数量
5. LSET
将列表key下标为index的元素设置值,若index参数超出可以范围或key不存在,返回一个错误
LSET [表名] [下标] [值]
返回值:成功返回OK,否则返回错误信息
6. RPOP
移除列表key的末尾元素,并显示
RPOP [表名]
返回值:成功返回列表key的末尾元素,表不存在返回null
7. RPUSH
将一个或多个值插入到列表key的末尾,如果有多个值,则按从左到右的顺序插入到key末尾,
若表不存在,则先创建一个新表再执行命令,若表存在但不是列表类型时,返回一个错误
RPUSH [表名] [值]
返回值:RPUSH执行成功后元素的长度
五、Set
1. SADD
将一个或多个元素加入到集合key当中,已经存在的元素将被忽略,如果key不存在,则创建一个只含有元素的集合,如果key不是集合类型,返回一个错误
SADD [表名] [元素]
返回值:添加到集合中的元素数量,不包括已存在的元素
2. SCARD
显示集合key中的元素数量
SCARD [表名]
返回值:集合中元素的数量,如果集合不存在,返回0
3. SDIFF
显示集合中的所有元素,如果是多个集合,则返回多个集合中的差集,如果集合不存在则视为空集合
SDIFF [表名]
返回值:差集集合的元素列表
4. SINTER
显示集合中的所有元素,如果是多个集合,则显示多个集合的交集,如果集合不存在则视为空集,如果给定的集合中有一个空集,则结果也为空集
SINTER [表名]
返回值:交集的元素列表
5. SISMEMBER
判断给定元素是否在集合key中
SISMEMBER [表名] [元素]
返回值:如果在集合中,返回1,如果不在集合中或者集合不存在,返回0
6. SMEMBERS
显示集合中的所有元素,若集合不存在则返回空集合
SMEMBERS [表名]
返回值:集合中的所有元素
7. SPOP
移除集合中的一个随机元素,并显示出来
SPOP [表名]
返回值:成功,返回被移除的元素,集合不存在或者集合为空,返回bull
8. SRANDMEMBER
如果命令执行时,只有集合key,则返回key中的一个随机元素
2.6版本之后命令接受可选的count参数:
若为正数且小于集合基数那么返回一个包含count个元素的数组,数组中的元素各不相同,如果大于等于集合基数,那么返回整个集合
若为负数,那么命令返回一个数组,数组中的元素可能会重复多次,而数组长度为count的绝对值
SRANDMEMBER [表名]
返回值:只提供key时,返回一个元素,如果集合key为空,返回null,如果提供了count参数,那么返回一个数组,如果集合为空,返回空数组
9. SUNION
显示给定集合的并集里面的全部元素,不存在的集合视为空集
SUNION [表名]
返回值:并集元素列表
六、SortenSet(有序集合)
1. ZADD
将一个或多个member元素及其score值加入到有序技key中
如果某个member已经是有序集合的元素,就更新member的score值,通过重新插入确保在正确位置上。
score值可以是整数或双精度浮点数
如果集合不存在,创建一个新的集合再执行命令,若存在但不是有序集类型,返回一个错误
ZADD [表名] [score] [member]
返回值:成功添加的数量,不包括更新的元素和已经存在的元素
2. ZCARD
显示有序集key的值的数量
ZCARD [表名]
当key存在时且是有序集类型时,返回有序集值的数量,不存在返回0
3. ZCOUNT
返回有序集key中,score值在min和max之间的元素数量,包含min和max
ZCOUNT [表名] [min] [max]
返回值:范围在min和max之间的数量
4. ZINCRBY
在有序集key的member的score值上加上一个数值increment,increment可以是一个负数,是让score减去这个数,
若key不存在,或member不是key的成员时,将这个添加到key中等同于ZADD用法,
若key不是有序集类型,返回一个错误,score的值可以是整数也可以是双精度浮点数
ZINCRBY [表名] [increment] [member]
返回值:命令执行后新的score值,以字符串格式显示
5. ZRANK
显示有序集key中member的排名,按照score的顺序从小到大排序,score值最小的排名为0
ZRANK [表名] [member]
返回值:如果member存在,返回member的排名,如果不存在,返回null
6. ZSCORE
显示有序集key中member对应的score值
ZSCORE [表名] [member]
返回值:存在member返回对应的score值,若member不存在或者key不存在,则返回null
七、BitMap
1. SETBIT
对key存储的字符串值,设置或清除指定偏移量的位,位的设置和清除取决于value参数,可以是0或者1,如果key不存在,自动创建一个新的字符串值,offset参数必须大于或等于0,小于2^32
SETBIT key offset value
返回值:指定的偏移量原来存在的位
2. GETBIT
显示key所存储的字符串值中偏移量上的位,当offset比字符串值长度大时,或者key不存在返回0
GETBIT key offset
返回值:字符串值上指定的偏移量上的位
3. BIOP
在redis中对二进制位进行操作运算的命令,允许在多个键之间执行位级别的布尔运算,并将值结果存储到一个目标键中,支持四种基本的布尔运算:AND、OR、NOT、XOR
BITOP [布尔运算类型] [结果将存储的键] [key]
ADD:与运算,全1出1,全0出0
OR:或运算,全0出0,有一个1就出1
NOT:非运算,有0出1,有1出0,全0出1
XOR:异或运算,相同出0,相反出1
4.BICOUNT
计算给定的字符串中,被设置为1的位的数量,可以通过设置额外的start和end,查找指定位置的字符串中的1,而且start和end的值可以设置为负数,-1就是代表最后一位。
不存在的key会被当做空字符串处理,返回结果就为0
BITCOUNT key [start] [end]
返回值:被设置为1的数量