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