redis的5种数据类型
- string 字符串(可以为整形、浮点型和字符串,统称为元素)
- list 列表(实现队列,元素不唯一,先入先出原则)
- set 集合(各不相同的元素)
- hash hash散列值(hash的key必须是唯一的)
-
String常用命令
GETSET key value
- 将给定key的值设为value,并返回key的旧值(old value)。
- 当key存在但不是字符串类型时,返回一个错误。
- GETBIT key offset
- 对key所储存的字符串值,获取指定偏移量上的位(bit)。
- INCR key
- 将key中储存的数字值增一。
- 如果key不存在,那么key的值会先被初始化为0,然后再执行INCR操作。
- 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
- GETRANGE key start end
- 返回key中字符串值的子字符串,字符串的截取范围由start和end两个偏移量决定(包括start和end在内)。
- 负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个,以此类推。
- SETNX key value
- MGET key [key …]
- 返回所有(一个或多个)给定key的值。
- MSET key value [key value …]
- 同时设置一个或多个key-value对。
- SETEX key seconds value
- 将值value关联到key,并将key的生存时间设为seconds(以秒为单位)。
- SETBIT key offset value
- 对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。
- 位的设置或清除取决于value参数,可以是0也可以是1。
- BITCOUNT key [start] [end]
- 计算给定字符串中,被设置为1的比特位的数量。
- 使用 bitmap 实现用户上线次数统计 ```shell redis> BITCOUNT bits (integer) 0
redis> SETBIT bits 0 1 # 0001 (integer) 0
redis> BITCOUNT bits (integer) 1
redis> SETBIT bits 3 1 # 1001 (integer) 0
redis> BITCOUNT bits (integer) 2 ```
list常用命令
- LPUSH key value [value …]
- 将一个或多个值value插入到列表key的表头
- LPUSHX key value
- LRANGE key start stop
- 返回列表key中指定区间内的元素,区间以偏移量start和stop指定。
- 下标(index)参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以1表示列表的第二个元素,以此类推。
- 你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。
- LREM key count value
- 根据参数count的值,移除列表中与参数value相等的元素。
- count的值可以是以下几种:
- count>0: 从表头开始向表尾搜索,移除与value相等的元素,数量为count。
- count<0: 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
- count=0: 移除表中所有与value相等的值。
- LSET key index value
- 将列表key下标为index的元素的值设置为value
- 当index参数超出范围,或对一个空列表(key不存在)进行LSET时,返回一个错误。
- LTRIM key start stop
- 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
- 举个例子,执行命令LTRIMlist02,表示只保留列表list的前三个元素,其余元素全部删除。
- RPOP key
- 移除并返回列表key的尾元素。
- RPOPLPUSH source destination
- 命令RPOPLPUSH在一个原子时间内,执行以下两个动作:
- 将列表source中的最后一个元素(尾元素)弹出,并返回给客户端。
- 将source弹出的元素插入到列表destination,作为destination列表的的头元素。
- 命令RPOPLPUSH在一个原子时间内,执行以下两个动作:
- LINSERT key BEFORE|AFTER pivot value
- 将值value插入到列表key当中,位于值pivot之前或之后。
- 当pivot不存在于列表key时,不执行任何操作
- 当key不存在时,key被视为空列表,不执行任何操作。
- 如果key不是列表类型,返回一个错误。
- 将值value插入到列表key当中,位于值pivot之前或之后。
set常用命令
sadd/srem/spop/sdiff/sdiffstore/smembers
语法:sadd 集合 元素
作用:向指定名称集合中添加元素
语法:smembers 集合
作用:查看指定集合的元素
语法:scard 集合
作用:查看集合中的元素个数
语法:sismember 集合 元素
作用:判断一个元素是否为集合中的元素(返回1表示是,0表示不是)
语法:srandmember 集合
作用:随机返回一个集合中的元素
语法:srem 集合 元素
作用:删除集合中指定的元素
语法:spop 集合
作用:随机返回删除的元素
语法: sdiff 集合1 集合2
作用:返回两个集合的不同元素
语法:sdiffstore 集合3 集合1 集合2
作用:将集合1和集合2的不同元素添加到集合3
sinter/sinterstore/sunion/sunionstore
sinter以及sinterstore的用法和sdif、sdiffstore列类似,只不过它是取交集
sunion以及sunionstore的用法和sdif、sdiffstore列类似,只不过它是取并集
zset常用命令
语法:zadd 集合 索引 元素
作用:向指定的有序集合中的索引位置添加元素
语法:zrange 集合 索引开始位置 -1
作用:查询指定索引位置后的所有元素