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:返回成员在集合中的排名。索引(从大到小)

 

 

 

 

 

 

 

          

 

posted @ 2017-09-15 18:44  字帖公子  阅读(157)  评论(0编辑  收藏  举报