1Redis的常用操作命令
1.1Redis的key操作命令
1.1.1Keys
返回符合patten的key,可使用通配符
?:匹配一位
*:匹配多位
a[bc]:匹配ab及ac
keys *
keys a[bc]
1.1.2exists
返回成功匹配key的个数,不存在返回0,存在返回1或n
exists k1
exists k1 k2 k3
1.1.3move
将此库实例的key移动到其他的库
举例:将0库实例的值移动到1库(默认打开redis在0库)
成功返回1,失败返回0
move k1 1
成功后切换到1库可查询值
select 1
1.1.4ttl
查看key的剩余生命时间,以秒为单位
返回类型值有三种:
默认为-1,开启为剩余秒数 ,过期后不存在为2
ttl k1
1.1.5expire
设置key的生命时间,单位为秒
expier k1 20
1.1.6type
查看key数据类型
类型:string list set zset hset none
type k1
1.1.7rename
设置key重命名,若newname与库中重复,value覆盖
rename k1 oldname newname
1.1.8del
删除key及其value
返回值为删除的key数量
del k1
1.2字符串类型String
1.2.1set
将value赋值到key,若key相同,value覆盖
成功返回ok
set k1 v1
1.2.2get
返回key对应的value,若不存在返回nil
get k1
1.2.3append
如果key存在,追加原value
如果key不存在,新建value
返回value的长度
append k1 v1
1.2.4strlen
返回key对应value长度,若不存在返回0
strlen k1
1.2.5incr
返回key中储存value数字+1,若key不存在,初始value为0后完成+1
incr k1
1.2.6decr
返回key中储存value数字-1,若key不存在,初始value为0后完成-1
1.2.7decrby
key对应的value减去减量值,若key不存在,初始value为0,再减去减量
decrby k1 50
1.2.8incrby
key对应的value加上增量,若key不存在,初始value为0,再加上增量
incrby k2 50
1.2.9getrange
获取key对应value的子串值,起始为0,末尾为-1
gertange startIndex endIndex
1.2.10setrange
将key对应value的一段子串覆盖,起始坐标offset
name:zhangsan==>liungsan
setrange name 0 liu
1.2.11setex
设置key,value的同时设置生命时间
返回值为ok
setex k1 20 v1
1.2.12setnx
意为set if not exists
如果key存在则不设置value
反之不存在才设置value
1.2.13mset
设置一组或多组kv,成功返回ok
mset k1 v1 k2 v2 k3 v3
1.2.14mget
获取一组或多组value,不存在为nil
mget k1 k2 k3
1.2.15msetnx
设置一组或多组kv,如果有一组key重复,语句失败
返回值:成功1,失败0
msetnx k1 v1 k2 v2
1.3列表类型List
1.3.1lpush
将一个或多个值 value 依次插入到列表 key 的最左边
返回值:插入之后的列表的长度。
lpush list 1 2 3 4
插入后list:4 3 2 1
1.3.2rpush
将一个或多个值 value 依次插入到列表 key 的最右边
返回值:插入之后的列表的长度。
lpush list 1 2 3 4
插入后list:1 2 3 4
1.3.3lrange
获取指定下标区间的元素,下标0开始,-1为倒数第一
返回获取的列表
lrange list startInsex endIndex
1.3.4lpop
移除并返回列表key头部(左1)第一个元素,
返回值左侧第一个元素的值,不存在,返回nil。
lpop list
1.3.5rpop
移除并返回列表key尾部(尾1)第一个元素,
返回值右侧第一个元素的值,不存在,返回nil。
rpop list
1.3.6lindex
获取列key 下标为指定 index 的元素,列表元素不删只查
返回值为对应下标的值,不存在时,返回nil。
lindex list 6
1.3.7llen
获取列表第index元素的长度
返回长度,不存在返回0
llen list index
1.3.8lrem
根据参数count,A,移除列表中与参数A相等的元素
移出元素个数为count
A > 0 左侧向右移除;
A < 0 尾部开始移除;
A = 0 移除所有与 value 相等的值。
返回值:移除的元素个数
lrem list count A
1.3.9ltrim
截取下标区间的元素,并且赋值给原list。下标从0开始,末尾为-1,startIndex和endIndex超出范围不会报错。
执行成功返回ok
ltrim key startIndex endIndex
1.3.10lset
将列表下标为 index 的元素的值设置为 value。
成功返回ok,list不存在或者index超范围返回错误信息。
lset list index value
1.3.11llinsert
将值 val插入到列表元素值 pivot 之前或后的位置
key或pivot不存在列表中,不执行
执行成功,返回新的list长度,
没找到pivot返回 -1, key不存在返回0。
1.4集合类型Set
1.4.1sadd
语法:sadd key member [member…]
将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略,不会再加入。
返回值:加入到集合的新元素的个数(不包括被忽略的元素)。
1.4.2smembers
语法:smembers key
功能:获取集合 key 中的所有成员元素,不存在的key视为空集合。
返回值:返回指定集合的所有元素集合,不存在的key,返回空集合。
1.4.3sismember
语法:sismember key member
功能:判断 member 元素是否是集合 key 的元素
返回值:member是集合成员返回1,其他返回 0 。
1.4.4scard
语法:scard key
功能:获取集合里面的元素个数
返回值:数字,key的元素个数。其他情况返回 0 。
1.4.5srem
语法:srem key member [member…]
功能:移除集合中一个或多个元素,不存在的元素被忽略。
返回值:数字,成功移除的元素个数,不包括被忽略的元素。
1.4.6srandmember
语法:srandmember set[count]
功能:随机返回集合,元素不删,仍在原集合中;
count>0 返回count个不重复元素的集合
count<0 返回count个可能有重复元素的集合
返回值:一个元素或者多个元素的集合
1.4.7spop
语法:spop key[count]
功能:随机从集合中删除一个或count个元素。
返回值:被删除的元素,key不存在或空集合返回nil
1.4.8smove
语法:smove src dest member
功能: 将 member 元素从src集合移动到dest集合, member不存在,smove不执行操作,返回0,
如果dest存在member,则仅从src中删除member。
返回值:成功返回 1 ,其他返回 0 。
1.4.9sdiff
语法:sdiff key key [key…]
功能:返回指定集合的差集,以第一个集合为准
1.4.10sinter
语法:sinter key key [key…]
功能:指定的所有集合中都有的元素组成的集合。
1.4.11sunion
语法:sunion key key [key…]
功能:返回并集,即指定的所有集合元素组成的大集合,如果元素有重复,则保留一个。
1.5哈希类型Hash
1.5.1hset
语法:hset key field value [field value …]
功能:将键值对field-value设置到哈希列表key中,如果key不存在,则新建哈希列表,然后执行赋值,如果key下的field已经存在,则value值覆盖。
返回值:返回设置成功的键值对个数。
1.5.2hget
语法:hget key field
功能:获取哈希表 key 中给定域 field 的值。
返回值:field域的值,如果key不存在或者field不存在返回nil。
1.5.3hmset
语法:hmset key field value [field value…]
功能:同时将多个 field-value (域-值)设置到哈希表 key 中,此命令会覆盖已经存在的field,hash表key不存在,创建空的hash表,再执行hmset.
返回值:设置成功返回ok,如果失败返回一个错误。
1.5.4hmget
语法:hmget key field [field…]
功能:获取哈希表 key 中一个或多个给定域的值
返回值:返回和field顺序对应的值,如果field不存在,返回nil。
1.5.5hgrtall
语法:hgetall key
功能:获取哈希表 key 中所有的域和值
返回值:以列表形式返回hash中域和域的值,key不存在,返回空hash.
1.5.6hdel
语法:hdel key field [field…]
功能:删除哈希表 key 中的一个或多个指定域field,不存在field直接忽略。
返回值:成功删除的field的数量。
1.5.7hlen
语法:hlen key
功能:获取哈希表 key 中域field的个数
返回值:数值,field的个数。key不存在返回0.
1.5.8hexits
语法:hexists key field
功能:查看哈希表 key 中,给定域 field 是否存在
返回值:如果field存在,返回1,其他返回0。
1.5.9hkeys
语法:hkeys key
功能:查看哈希表 key 中的所有field域列表
返回值:包含所有field的列表,key不存在返回空列表
1.5.10hvals
语法:hvals key
功能:返回哈希表 中所有域的值列表
返回值:包含哈希表所有域值的列表,key不存在返回空列表。
1.5.11hincrby
语法:hincrby key field int
功能:给哈希表key中的field域增加int
返回值:返回增加之后的field域的值
1.5.12hincrbyfloat
语法:hincrbyfloat key field float
功能:给哈希表key中的field域增加float
返回值:返回增加之后的field域的值
1.5.13hsetnx
语法:hsetnx key field value
功能:将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在的时候才设置,否则不设置。
返回值:设值成功返回1,其他返回0.
1.6有序集合类型
1.6.1zadd
语法:zadd key score member [score member…]
功能:将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果member存在集合中,则覆盖原来的值;score可以是整数或浮点数.
返回值:数字,新添加的元素个数.
1.6.2zrange
语法:zrange key startIndex endIndex [WITHSCORES]
功能:查询有序集合,指定区间的内的元素。集合成员按score值从小到大来排序;startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推; startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;WITHSCORES选项让score和value一同返回。
返回值:指定区间的成员组成的集合。
1.6.3zrangebyscore
语法:zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]
功能:获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括min和max)的成员,有序成员是按递增(从小到大)排序;
使用符号”(“ 表示包括min但不包括max;
withscores 显示score和 value;
limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。
返回值:指定区间的集合数据
1.6.4zrem
语法:zrem key member [member…]
功能:删除有序集合 key 中的一个或多个成员,不存在的成员被忽略。
返回值:被成功删除的成员数量,不包括被忽略的成员。
1.6.5zcard
语法:zcard key
作用:获取有序集 key 的元素成员的个数。
返回值:key存在,返回集合元素的个数; key不存在,返回0。
1.6.6zcount
语法:zcount key min max
功能:返回有序集 key 中, score 值在 min 和 max 之间(包括 score 值等于 min 或 max )的成员的数量。
返回值:指定有序集合中分数在指定区间内的元素数量。
1.6.7zrank
语法:zrank key member
功能:获取有序集 key 中成员 member 的排名,有序集成员按 score 值从小到大顺序排列,从0开始排名,score最小的是0 。
返回值:指定元素在有序集合中的排名;如果指定元素不存在,返回nil。
1.6.8zsource
语法:zscore key member
功能:获取有序集合key中元素member的分数。
返回值:返回指定有序集合元素的分数。
1.6.9zrevrank
语法:zrevrank key member
功能:获取有序集 key 中成员 member 的排名,有序集成员按 score 值从大到小顺序排列,从0开始排名,score最大的是0 。
返回值:指定元素在有序集合中的排名;如果指定元素不存在,返回nil。
1.6.10zrevrange
语法:zrevrange key startIndex endIndex [WITHSCORES]
功能:查询有序集合,指定区间的内的元素。集合成员按score值从大到小来排序;startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推; startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;WITHSCORES选项让score和value一同返回。
返回值:指定区间的成员组成的集合。
1.6.11zrevrangebysource
语法:zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]
功能:获取有序集 key 中,所有 score 值介于 max 和 min 之间(包括max和min)的成员,有序成员是按递减(从大到小)排序;
使用符号”(“ 表示不包括min和max;
withscores 显示score和 value;
limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。
返回值:指定区间的集合数据