redis常用数据类型总结

2017-04-27 18:25

redis常用数据类型总结

     redis是以键值对key-value的形式来存储数据,而存储的数据类型有5种String,List,Set,Map,以及有序集合

这五种数据类型操作的命令多有相似,经常混淆,闲暇之余,总结一番。

类型一:String

1append key value  

如果key存在,则把value追加到原来的value后面

如果可以不存在,则以key为键,value为值建立新的。

2get key

返回key所关联的字符串。如果key不存在则返回nil

3bitcount key

返回给定字符串中,被设置为1的比特位的数量

4decr key

key中存储的数字值减一

5decrby key  num

key 中所存储的值减去 num

6getbit key offset

对key所存储的字符串值,获取指定偏移量上的位

7getrange key  start end

返回key中存储的start到end之间的字符串

8getset key value

将给定key的值设为value,并返回key原来的值

9incr 将key中存储的数字值加一

10incrby key  num

将key中所存储的值加num

11mget key1 key2 ...

返回所有给定key的值

12mset key1 value1  key2 value2  ...

同时设置多个键值对

13setex key seconds value

设置key value 键值对,并且设置key的生存时间

14strlen key

返回key所存储值得长度

类型二:HASH(哈希)又称散列

1hset key-name key  value

在名为key-name 的hash表中设置一堆键值对 key  value

2hsetnx key-name key value

在名为key-name 的hash表中设置一堆键值对 key  value,当且仅当key不存在。

3hmset key-name key1 value1  key2 value2 ...

为名字叫key-name的散列设置多个键值对。

4hget  key-name  key

获得key-name散列表中名字为key的值

5hmget key-name key1 key2  ...

获得名字为key-name的散列表中键为key1 key2 ...的值

6hgetall key-name

获得散列包含的所有键值对

7hvals key -name 

获取散列包含的所有值

8hkeys key -name 

获取散列包含的所有键

9hlen key-name 

返回散列包含的键值对数量

10hdel key-name key1 key2

删除散列里一个或多个值

11hincrby key-name key increment 

将名字为key-name的散列中,将键key所存储的值加上整数increment

类型三:列表(List)

1lpop key-name

移除并返回列表key的头元素(最左端的元素)

2rpop key-name

移除并返回列表key的尾元素(最右端的元素)

3lpush key-name value1 value2

将一个或多个值推入列表的表头(最左端)

4rpush key-name value1 value2 ...

将一个或多个值推入列表的尾部(最右端)

5lpushx key-name value

将值value插入列表key-name的表头,当且仅当key存在且是列表

6rpushx key-name value

将值value插入列表key-name的尾部,当且仅当key存在且是列表

7ltrim key start stop  

对一个列表进行修剪,保留指定区间内的元素,不再指定区间的元素将被删掉。

8lset key-name  index value

将key-name列表下表为index的值设为value

9lrange key-name start stop

返回列表key-name中指定区间内的元素。

10llen key-name

返回列表key-name的长度

类型四:集合(SET)

1sadd key-name item1 item2  ...

将一个或多个元素添加到集合key-name中

2srem key-name item1 item2

从集合key-name 里移除一个或多个元素

3scard key-name

返回集合包含的所有元素的数量

4sismember key-name  item

判断item元素是否是集合key-name的成员

5smembers key-name

返回key-name中的所有成员

6sdiff key-name1 key-name2 ..

返回第一个集合和其他集合的差集运算后的元素

7sinter key-name1 key-name2

返回那些同时存在于所有集合中的元素,交集运算

8sunion key-name1 key-name2 ...

返回至少存在于一个集合中的元素,并集运算

9smove key-name1 key-name2 item

将item元素从key-name1集合移动到key-name2集合

10spop key-name

移除并返回key-name集合中随机一个元素

类型五:有序集合

1zadd key-name score1 member1 [score2 member2]

将一个或多个member元素及其分值score添加到key-name集合中

2zrem key-name member1 member2 ...

移除有序集和key-name中 一个或多个成员

3zcard key-name

返回有序集合的元素数量

4zrank key-name member

返回元素member在有序集合里的排名

5zcount key-name min max

返回分值介于min max之间的成员数量

6zscore key-name  member

返回member成员在key-name有序集合中的分值

7zrange key-name start stop

返回有序集合中排名介于start stop之间的元素。

8zincrby key-name increment member

在有序集合key-name中为member成员加上增量increment。




如果有不同见解欢迎大家相互讨论共同进步@_@


参考有josiah L .carlson  redis in action