Redis 常用命令
redis的常用命令:
1.String:主要保存 json 格式字符串
set key value :设定 key 持有指定的字符串,如果该key 存在则进行覆盖操作.总是返回 ”OK“
get key:获取 key 的 value 如果与该 key 关联的 value 不是String类型,redis将返回错误信息
因为 get 命令只能获取 String value;如果key不存在,返回 nil (相当于null)
del key:删除指定的 key 返回值是数字类型,表示删除几条数据;(适用5种所有类型)
getset key value:先获取key值,然后在再设置该key的值,返回被覆盖的值
incr key:(相当 ++i)将指定的 key 的 value 原子性递增1;如果该 key 不存在,其初始值为0,在incr 之后创建 key value 其值为1
如果value 的值不能转成整型,如hello,该操作执行失败并返回相应的错误信息。
decr key:与 incr key 相反;(相当 - -i)
append key value:拼接字符串;返回拼接后的长度;如果key 存在,则在value 后面追加该值;
如果该key 不存在则重新创建一个 key value
redis不常用命令:
incrby key increment:将指定的 key 的value 原子性自加 incrment
decrby key decrbyment:将指定的key 的value 原子性自减 decrbyment
2.redis 命令 -hash(不常用)
redis中的 Hash类型可以看作成具有String Key 和 String Value 的map 容器。所以该类型非常适合于存储对象信息。
如用户名,密码和年龄等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。
每一个Hash可以存储4294967295个键值对。 Hash:{usename:”张三“,age:“18”,sex:“男”}
相对字符串Hash占用的内存很少
flushdb:清空数据库
hset key filed value:为指定的key 设置filed/value 对(键值对)
hmset key field value [ field2 vlue2 ......]: 设置key 中的多个 filed/value
hget key field:返回单个值
hmget key field1 field2 ......:返回多个值
hgetall key :返回 key 所有的数据
hdel key field [field2 .....]:删除一个或多个字段,返回被删除的Hash字段的个数(没有字段后 key 也就被删除了)
del key:删除整个key(适用5种所有类型)
hincrby key field increment:设置 key 中 filed 的值增加 increment, 如age 增加20
自学命令:
hexists key field:判断key 中的 field 是否存在
hlen key :获取 key 所包含的field 的数量
hkeys key :获得所有字段
hvals key :获取所有value
3.链表类型LinkList命令:
lrange key statrt end :获取链表中statrt 到 end 的元素的值 (包含开头和结尾)start 从0开始计数;
也可以为负数,若为-1 则表示链表尾部元素,-2 则表示倒数第二个,以此类推
lpush key values [value1 value2 .....]:在list头部添加元素,如果该key 不存在,该命令在插入的之前创建
一个与该key关联的空链表,之后再向该链表插入数据,成功后返回元素个数。
rpush key values[value1 value2...]:在list尾部添加元素
lpop key:删除第一个元素,如果key 不存在则返回nil;存在则返回头部元素。
rpop key:删除尾部元素;
扩展命令:
llen key :返回指定的key 的元素数量
lrem key count value :删除count 个值为value 的元素,如果count 大于0,从头向尾部遍历并删除 count个值
为value 的元素,如果count小于0,则从尾像头部开始删除,如果count等于0则删除value所有数据
lset key index value:设置链表中的index 的脚本的元素值,0代表链表的头元素,
-1代表链表的尾元素。操作链表的脚本不存在则抛出异常。
linsert key beforel | after pivot value :在pivot 元素前或者后插入 value 这个元素。
rpoplpush resource destination:将链表中的尾部元素弹出并添加到头部。[循环操作]
4.无序集合redis-set:
sadd key values [value1, value2....]:向set 中添加数据,如果该 key 的值已有则不会重复添加
srem key members [memeber1 , member2.....]:删除set 中指定的成员
smembers key:获取set 中所有的成员
sismember key member:判断参数中指定的成员是否在该set 中,1表示存在,0表示不存在,
或者该key 本身就不存在就不存在(无论集合中有多少元素都可以这样极速返回结果)
sdiff key1 key2 :返回key1 与key2中相差的成员,而且与key 的顺序有关。
即返回差集(属于key1并且不属于key2的集合)。
sinter key1 key2.....:返回交集(不但属于key1而且属于key2)
sunion key1 key2.....:返回并集(key1 + key2)
扩展命令:
scard key:获取set 中成员的数量
srandmember key:随机返回一个set 中的成员
sdiffstore destination key1 key2 :相差的成员存储在 destination 上
sinterstore destination key1 key2 :将返回的交集 存储在destination 上
sunionstore destination key1 key2 :将返回的并集存储在destination 上
5.有序set (不常用,适合做排行榜)
zadd key score member score2 member2 ....:将所有成员以及该成员的分数存放到 sorted-set 中 。
如果该元素存在则会用新的分数代替原有的分数,(默认分数有小到大排列)
返回值是新加入到集合中的元素个数,不包含之前已存在的元素。
zscore key member :返回指定成员的分数
zcard key :获取集合中成员的数量
zrem key member[member...]:删除,可以删除多个
zrange key start end [withscore]:获取集合中脚标为start_end 的成员,[withscores]参数表明返回的成员包含其分数。
(分数由小到大排列)
zrevrange key start end [withscores]:获取集合中脚标为start-end 的成员withscores参数表明返回的成员包含
其分数。(分数由大到小排列)
zremrangebyrank key start stop :按照排名范围删除元素
zremrangebyscore key min max:按照分数范围删除元素
zincrby key increment member: 设置指定成员的增加分数。返回值是更改后的分数。
zcount key min max :获取分数在[min,max]之间的成员
zrank key member:返回成员在集合中的排名。索引(从小到大)
zrevrank key member:返回成员在集合中的排名。索引(从大到小)