Redis操作命令
2015-12-14 20:46
639 查看
redis命令速查:http://doc.redisfans.com/
如: set a 1 ex 10 , 10秒有效
Set a 1 px 9000 , 9秒有效
注: 如果ex,px同时写,以后面的有效期为准
如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒
nx: 表示key不存在时,执行操作
xx: 表示key存在时,执行操作
例: mset key1 v1 key2 v2 ….
get key
作用:获取key的值
作用:获取多个key的值
作用:把字符串的offset偏移字节,改成value
注意: 如果偏移量>字符长度, 该字符自动补0x00
作用: 把value追加到key的原值上
作用: 是获取字符串中 [start, stop]范围的值
注意: 对于字符串的下标,左数从0开始,右数从-1开始
注意:
1: start>=length, 则返回空字符串
2: stop>=length,则截取至字符结尾
3: 如果start 所处位置在stop右边, 返回空字符串
作用: 获取并返回旧值,设置新值
作用: 指定的key的值加1,并返回加1后的值
注意:
1:不存在的key当成0,再incr操作
2: 范围为64有符号
作用:获取值的二进制表示,对应位上的值(从左,从0编号)
设置offset对应二进制位上的值
返回: 该位上的旧值
注意:
1:如果offset过大,则会在中间填充0,
2: offset最大大到多少
3:offset最大2^32-1,可推出最大的的字符串为512M
对key1,key2..keyN作operation,并将结果保存到 destkey 上。
operation 可以是 AND 、 OR 、 NOT 、 XOR
注意: 对于NOT操作, key不能多个
Redis的key通用操作
命令 | 作用 |
---|---|
keys *,?,[] | *通配所有字符,?通配一个字符,[]通配括号中所包含的字符 |
randomkey | 返回随机key |
type key | 查看对应key的数据类型 |
exists key | 判断某个key是否存在 |
del key1 key2 | 删除对应的key1、key2等,多个key中间用空格分隔 |
rename key1 key2 | 修改key1为key2,如果key2已存在,key2值将被覆盖 |
renamenx key1 key2 | 修改key1为key2,如果key2已存在,则修改失败 |
move key db | 移动key到指定db空间,redis默认16个db空间,可通过select num来切换db空间 |
expire key 整型值 | 设置key的生命周期以秒为单位 |
pexpire key 整型值 | 设置key的生命周期以毫秒为单位 |
ttl key | 查询指定key的有效期,以秒为单位,-1代表永久有效;不存在key也返回-2 |
pttl key | 查询指定key的有效期,以毫秒为单位 |
persist key | 设置指定key永久有效 |
Redis字符串类型的操作
set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]
如: set a 1 ex 10 , 10秒有效
Set a 1 px 9000 , 9秒有效
注: 如果ex,px同时写,以后面的有效期为准
如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒
nx: 表示key不存在时,执行操作
xx: 表示key存在时,执行操作
mset multi set , 一次性设置多个键值
例: mset key1 v1 key2 v2 ….
get key
作用:获取key的值
mget key1 key2 ..keyn
作用:获取多个key的值
setrange key offset value
作用:把字符串的offset偏移字节,改成value
redis 127.0.0.1:6379> set greet hello OK redis 127.0.0.1:6379> setrange greet 2 x (integer) 5 redis 127.0.0.1:6379> get greet "hexlo"
注意: 如果偏移量>字符长度, 该字符自动补0x00
redis 127.0.0.1:6379> setrange greet 6 ! (integer) 7 redis 127.0.0.1:6379> get greet "heyyo\x00!"
append key value
作用: 把value追加到key的原值上
getrange key start stop
作用: 是获取字符串中 [start, stop]范围的值
注意: 对于字符串的下标,左数从0开始,右数从-1开始
redis 127.0.0.1:6379> set title 'chinese' OK redis 127.0.0.1:6379> getrange title 0 3 "chin" redis 127.0.0.1:6379> getrange title 1 -2 "hines"
注意:
1: start>=length, 则返回空字符串
2: stop>=length,则截取至字符结尾
3: 如果start 所处位置在stop右边, 返回空字符串
getset key newvalue
作用: 获取并返回旧值,设置新值
redis 127.0.0.1:6379> set cnt 0 OK redis 127.0.0.1:6379> getset cnt 1 "0" redis 127.0.0.1:6379> getset cnt 2 "1"
incr key
作用: 指定的key的值加1,并返回加1后的值
注意:
1:不存在的key当成0,再incr操作
2: 范围为64有符号
incrby key number redis 127.0.0.1:6379> incrby age 90 (integer) 92
incrbyfloat key floatnumber redis 127.0.0.1:6379> incrbyfloat age 3.5 "95.5"
decr key redis 127.0.0.1:6379> set age 20 OK redis 127.0.0.1:6379> decr age (integer) 19
decrby key number redis 127.0.0.1:6379> decrby age 3 (integer) 16
getbit key offset
作用:获取值的二进制表示,对应位上的值(从左,从0编号)
redis 127.0.0.1:6379> set char A OK redis 127.0.0.1:6379> getbit char 1 (integer) 1 redis 127.0.0.1:6379> getbit char 2 (integer) 0 redis 127.0.0.1:6379> getbit char 7 (integer) 1
setbit key offset value
设置offset对应二进制位上的值
返回: 该位上的旧值
注意:
1:如果offset过大,则会在中间填充0,
2: offset最大大到多少
3:offset最大2^32-1,可推出最大的的字符串为512M
bitop operation destkey key1 [key2 ...]
对key1,key2..keyN作operation,并将结果保存到 destkey 上。
operation 可以是 AND 、 OR 、 NOT 、 XOR
redis 127.0.0.1:6379> setbit lower 7 0 (integer) 0 redis 127.0.0.1:6379> setbit lower 2 1 (integer) 0 redis 127.0.0.1:6379> get lower " " redis 127.0.0.1:6379> set char Q OK redis 127.0.0.1:6379> get char "Q" redis 127.0.0.1:6379> bitop or char char lower (integer) 1 redis 127.0.0.1:6379> get char "q"
注意: 对于NOT操作, key不能多个
Link链表结构操作
命令 | 作用 |
---|---|
lpush/rpush key value | 把值插入到链接头、尾部 |
lpop/rpop key | 返回并删除链表头、尾元素 |
lrange key start stop | 返回链表中【start,stop】中的元素;规律:左数从0开始,右数从-1开始 |
lrem key count value | 作用:从key链表中删除value值;注:删除count的绝对值个value后结束;count>0 从表头删除;count<0 从表尾删除 |
ltrim key start stop | 作用:剪切key对应的链接,切【start,stop】一段,并把该段重新赋给key |
lindex key index | 作用:返回index索引上的值;如 lindex key 2 |
llen key | 计算链表的元素个数 |
linsert key after/before value1 value2 | 在key链表中寻找‘value1’,并在‘value1’值之前或之后插入value2;注:一旦找到一个‘value1’后命令结束,不会插入多个value2 |
rpoplpush source dest | 把source的尾部拿出,放在dest的头部,并返回该单元值 |
brpop/blpop key timeout | 等待弹出key的尾/头元素,timeout为等待超时时间,如果timeout为0,则一直等待 |
集合set相关命令
集合的性质: 唯一性,无序性,确定性;但,因为集合的无序性,无法通过下标或范围来访问部分元素,因此想看元素,要么随机先一个,要么全选 注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素
命令 | 作用 |
---|---|
sadd key value1 value2…… | 往集合key中增加元素value1、value2…… |
srem key value1 value2 | 删除集合中指定值的元素,返回忽略不存在的元素后,真正删除掉元素的个数 |
spop key | 返回并删除集合中key中随机元素 |
srandmember key | 返回集合key中,随机的一个元素 |
smembers key | 返回集合中所有的元素 |
sismember key value | 查看指定元素是否存在在集合中 |
scard key | 返回集合中元素的个数 |
smove source dest value | 把source中的value删除,并添加到dest集合中 |
sinter key1 key2 key3 | 求出key1 key2 key3三个集合中的交集,并返回 |
sinterstore dest key1 key2 key3 | 求出key1 key2 key3三个集合中的交集,并赋给dest |
sunion key1 key2 …… | 求出多个集合的并集,并返回 |
sdiff key1 key2…… | 求出多个集合的差集 |
order set 有序集合
命令 | 作用 |
---|---|
zadd key score1 value1 score2 value2.. | 添加一个或多个元素 |
zrem key value1 value2…… | 删除集合中的元素 |
zremrangebyscore key min max | 删除score值在[min,max]之间的 |
zrank key member | 查询member的排名(升序0名开始) |
zrevrank key member | 查询member的排名(降序0名开始) |
zrange key start stop [withscores] | 把集合排序后,返回名词[start,stop]的元素,默认升序排列,withscores是把score打印出来 |
zrevrange key start stop | 把集合降序排列,取名字[start,stop]之间的元素 |
zrangebyscore key min max [withscores] limit offset N | 集合(升序)排序后,取score在[min,max]内的元素,并跳过offset个,去除N个 |
zcard key | 返回元素个数 |
zcount key min max | 返回[min,max]区间内元素的数量 |
zinterstore destination numkeys key1 [key2…] [weights weight [weight…]] [aggregate sum/min/max] | 求key1,key2的交集,key1,key2的权重分别是 weight1,weight2;聚合方法用: sum/min/max;聚合的结果,保存在dest集合内 |
zunionstore destination numkeys key1 [key2…] [weights weight [weight…]] [aggregate sum/min/max] | 求key1,key2的并集,key1,key2的权重分别是 weight1,weight2;聚合方法用: sum/min/max;聚合的结果,保存在dest集合内 |
注意: weights ,aggregate如何理解? 答: 如果有交集, 交集元素又有socre,score怎么处理? Aggregate sum->score相加, min求最小score, max 最大score 另: 可以通过weigth设置不同key的权重, 交集时,socre * weights
redis 127.0.0.1:6379> zadd z1 2 a 3 b 4 c (integer) 3 redis 127.0.0.1:6379> zadd z2 2.5 a 1 b 8 d (integer) 3 redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 1) "b" 2) "a" redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "4" 3) "a" 4) "4.5" redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 aggregate sum (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "4" 3) "a" 4) "4.5" redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 aggregate min (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "1" 3) "a" 4) "2" redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 weights 1 2 (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "5" 3) "a" 4) "7"
Hash 哈希数据类型相关命令
命令 | 作用 |
---|---|
hset key field value | 把key中field域的值设为value |
hmset key field1 value1 [field2 value2 …] | 设置field1->N个域,对应的值是value1->N |
hget key field | 返回key中field域的值 |
hmget key field1 field2 fieldN | 返回可以中field1…域的值 |
hgetall key | 返回key中所有域与其值 |
hdel key field | 删除key中field |
hlen key | 返回key中元素的数量 |
hexists key field | 判断key中没有field域 |
hincrby key field value | 把key中的field域的值增长整型值value |
hincrbyfloat key field value | 把key中的field域的值增长浮点值value |
hkeys key | 返回key中所有的field |
hvals key | 返回key中所有的value |
相关文章推荐
- redis学习笔记---redis主从复制
- Redis系列一:初识Redis
- redis的简单操作
- redis的集群配置
- Redis编译及安装
- redis的简单安装和配置文件的参数
- Windows环境下安装Redis
- Redis学习笔记---介绍、安装和通用命令
- Redis中集合类型Set
- AAA redis使用手册后 小结
- redis集群(主从配置)
- Redis
- Redis在windows环境下的部署
- Redis缓存异常的容错实现方法( .net)
- Redis
- 一个导出redis有序集合sorted-sets的shell脚本
- Redis认识
- redis-3.0.5安装
- redis 连接池类
- Redis的hash数据类型及其应用场景解析---购物车