刚刚接触Redis,在这里把命令都列出来,防止自己忘记,也能多看看
http://zk-chs.iteye.com/blog/2253663
在目前的redis中支持类型如下:
1. 字符串类型 string
2. 散列类型 hash
3. 列表类型 linkedlist
4. 集合类型 set
5. 有序集合类型 sorted set
首先介绍一些基本的命令:
FLUSHDB:删除当前db下的数据
FLUSHALL:删除所有
KEYS pattern:获取符合规则的键名列表
EXISTS key:判断键是否存在 存在返回1,不存在返回0
DEL key [key...]:删除键 返回的是删除键的个数 key不存在返回0
TYPE key:返回key的类型 key不存在返回none
字符串类型:key value
SET key value:存储一个string对,如果key已经存在则覆盖原值,不管原key是什么类型(特例)
GET key:取得key的值,key不存在返回nil,表示无值
MSET key value [key value...]:同时设置多个键值
MGET key [key...]:同时获得多个键的值,不返回key
INCR key:递增数字 当字符串为整数形式时,递增1,key不存在默认为0,返回递增后的值,原子操作
INCRBY key increment:与上面一样,不过能增加指定大小的值,返回递增后的值
DECR key: ...
DECRBY key decrement:递减,用法同上
INCRBYFLOAT key increment:增加指定浮点数,差别在于可以递增一个双精度浮点数,例如:
redis>INCRBYFLOAT num 9.9
APPEND key value:向键的末尾追加value,key不存在则将key设置为value,返回value长度
STRLEN key:返回指定键值的长度,键不存在返回0
GETBIT key index:获取指定索引的二进制值,超出范围返回0
SETBIT key index value:设置指定索引的二进制值,超出范围则将不存在的位置赋值为0
BITCOUNT key [start] [end]:获取指定字节范围内二进制为1的二进制位个数
BIPOP operation destkey key [key...]:进行位运算
BITPOS key 0/1:获取指定键的第一个二进制位值为0或1点位置
散列类型:key field value [field value...] 键值对形式,适合存储对象
HSET key field value:不区分插入与更新,当为插入(field不存在)时返回1,更新(field存在)返回0
HGET key value:获取字段值,不包含key,key不存在返回nil
HMSET key field value [field value...]:参考HSET
HMGET key field [field...]:参考HGET
HGETALL key:返回所有fielld value,成对出现
HEXISTS key field:判断字段是否存在,存在返回1,否则返回0,key不存在也返回0
HSETNX key field value:当字段不存在时赋值,成功返回1,否则返回0
HINCRBY key field increment:增加数字,返回增加后的字段值
HDEL key field [field...]:删除字段,返回删除的字段个数
HKEYS key:只获取key的所有field
HVALS key:只获取key的所有value
HLEN key:获取字段数量
列表类型:key value [value...] 由双向链表实现,有序,不唯一
LPUSH key value [value...]:向列表左端增加元素,返回增加元素后的列表长度
RPUSH key value [value...]:同上
LPOP key:从列表左端弹出一个元素,返回并删除元素,不存在返回nil
RPOP key:同上
LLEN key:返回列表中元素的个数,key不存在返回0
LRANGE key start end:返回从索引start到end的所有元素(包括两端),支持负索引
LREM key count value:删除列表中前count个值为value的元素,返回删除的元素个数,count=0删除全部,为负则从右边开始删除
LINDEX key index:获得指定索引的元素值,不存在返回nil
LSET key index value:设置指定索引的元素值,index超出则返回越界(ERR index out of range)
LTRIM key start end:只保留列表指定片段,删除索引之外的所有元素,返回ok
LINSERT key before|after pivot value:首先在列表中从左至右查找值为pivot的元素,根据第三个参数决定插入位置,返回插入后的列表长度
RPOPLPUSH source destination:先执行RPOP再执行LPUSH,将元素从一个列表转入另一个列表,返回这个元素点值;如果是队列,当source与destination相同时,会不断将队尾的元素移到队首
集合类型:key member [member...] 使用值为空的散列表实现,无序,唯一
SADD key member [member...]:增加元素,返回成功加入的元素数量
SREM key member [member...]:删除元素,返回成功删除的元素数量
SMEMBERS key:获取集合中的所有元素
SISMEMBER key member:判断元素是否在集合中,存在返回1,值或键不存在返回0
SDIFF key [key...]:差集运算,SADD setA setB表示只存在于setA中的元素,即setA-setB
SINTER key [key...]:交集运算,属于A且属于B多元素
SUNION key [key...]:并集运算,属于所有集合的元素
SCARD key:获取集合中元素个数
SDIFFSTORE destination key [key...]:进行集合运算,并将结果存到destination键中
SINTERSTORE destination key [key...]:同上
SUNIONSTORE destination key [key...]:同上上
SRANDMEMBER key [count]:随机获取集合中的元素,count为个数;当count>0时,返回不重复的元素,最多返回集合中的个数个元素;当count<0时,随机从集合中返回| count |个元素,可以重复
SPOP key:从集合中随机弹出一个元素
有序集合类型:key score member [score member...] 使用散列表与跳跃表实现
ZADD key score member [score member...]:增加元素,如果已存在,则用新的score替代旧的,返回新加入到集合中的元素个数(不包含已存在到元素)
ZSCORE key member:获得元素的分数,不存在返回nil
ZRANGE key start end [WITHSCORES]:按照分数(score)从小到大的顺序返回索引从start到end之间的所有元素,包含两端
ZREVRANGE key start end [WITHSCORES]:同上,只是从大到小,WITHSCORES表示同时获得分数,排序方式(0<9<A<Z<a<z)
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:获得指定分数范围的元素,如果不想包含端点,可以在min或max前添加"(",
比如ZRANGEBYSCORE setA 0 (100,LIMIT搭配count限制数量,offset表示在获得的元素列表的基础上偏移offset个元素
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:用法同上
ZINCRBY key increment member:增加某个元素的分数,返回更改后的分数,如果不存在,则先默认赋值为0
ZCARD key:获取集合中元素的数量
ZCOUNT key min max:获取指定分数范围内的元素个数
ZREM key member [member...]:删除一个或多个元素,返回成功删除的元素数量
ZREMRANGEBYRANK key start end:按照排名范围删除元素(即索引0表示最小的值),返回删除的元素数量
ZREMRANGEBYSCORE key min max:按照分数范围删除元素,返回删除的元素数量
ZRANK key member:获得元素的排名,从0开始,即最小的元素排名为0
ZREVRANK key member:与上面相反,最大的元素排名为0
ZINTERSTORE destination numkeys key [key...] [WEIGHTS weight [weight...] ] [AGGREGATE SUM | MIN | MAX ]:
计算有序集合的交集,并将结果存在destination中,destination同样以有序集合方式存储,返回destination中元素个数;WEIGHT表示权重,每个集合参与计算时会先计算权重;AGGREGATE代表结果处理方式,SUM表示相同元素的分数相加,MIN取最小值,MAX取最大值