1、String字符串,key-value
应用场景:string是redis的最基本数据类型,key-value格式,一个key对应一个值的状况下
一、设置key = value:set key value
二、追加一个值到key:append key value
append baidu .com
三、取值:get key
get baidu
四、增长键的整数值一次:incr key
set count 0
incr count 【count会变成1】
五、由给定的数量递增键的整数值: incrby key increment
incrby count 100 【count会变成101】
六、返回存储在键的数据类型的值: type key
type baidu 【string】
type count【string】
七、删除健值:del key
del count
八、key值是否存在:exists key
exists baiduzhiding
九、指定key的过时时间,秒:expire key seconds
expire baidu 100 【没有设置默认长期有效】
2、List列表
应用场景:高并发的经常使用 好比抢购 要限制成功的前几我的数。好比twitter的关注列表、粉丝列表等均可以用Redis的list结构来实现,再好比有的应用使用Redis的list类型实现一个简单的轻量级消息队列,生产者push,消费者pop/bpop。
一、设置key:LSET key index value
必须对已经存在的list设置,空list会报错
LSET list 0 item 【list不存在】 ---> (error) ERR no such key
LSET job 0 "play game" ---> OK
二、将一个或多个值插入到列表左边:LPUSH KEY VALUE1.. VALUEN
若是 key 不存在,一个空列表会被建立并执行 LPUSH 操做。 当 key 存在但不是列表类型时,返回一个错误。
lpush list1 redis
lpush list1 hello
三、将一个或多个值插入到列表右边:RPUSH key value1 [value2]
rpush list1 world
四、获取列表的长度:LLEN key
llen list1
---> 3
五、从一个列表获取元素:LRANGE key start stop
lrange list1 0 3
---> 1) "hello"
---> 2) "redis"
---> 3) "world"
六、移除并返回列表中的第一个元素,左边:LPOP key
lpop list1
---> "hello"
七、移除并返回列表中的最后一个元素,右边:RPOP key
rpop list1
---> "world"
lrange list1 0 3
---> 1) "redis"
3、Hash(字典,哈希表)
应用场景:假设有多个用户及对应的用户信息,能够用来存储以用户ID为key,将用户信息序列化为好比json格式作为value进行保存好比有分类 要把鸡蛋放到一个篮子里 鸭蛋放一个篮子,那这个篮子的话就是一个hash表名,里面的鸡蛋 和鸡蛋位置就是value 和key
一、设置对象指定字段的值:HSET key field value
hset person name jack
hset person age 20
hset person sex famale
二、获取对象的全部属性域和值:HGETALL key
hgetall person
---> 1) "name"
---> 2) "jack"
---> 3) "age"
---> 4) "20"
---> 5) "sex"
---> 6) "famale"
三、获取对象中该field属性域的值:HGET key field
hget person name
---> jack
四、获取对象的全部属性字段:HKEYS key
hkeys person
---> 1) "name"
---> 2) "age"
---> 3) "sex"
五、获取对象的全部属性值:HVALS key
hvals person
---> 1) "jack"
---> 2) "20"
---> 3) "famale"
六、删除对象的一个或几个属性域,不存在的属性将被忽略:HDEL key field[field...]
七、查看对象是否存在该属性域:HEXISTS key field
八、获取对象的全部属性字段的总数:HLEN key
4、Set集合
应用场景:set对外提供的功能与list相似是一个列表的功能,特殊之处在于set是能够自动排重的,当你须要存储一个列表数据,又不但愿出现重复数据时,set是一个很好的选择,而且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的
一、添加一个或者多个元素到集合(set)里:SADD key member [member ...
SADD myset "Hello"
SADD myset "World"
二、获取集合里面的全部key:SMEMBERS key
SMEMBERS myset
---> 1) "World"
---> 2) "Hello"
三、肯定一个给定的值是一个集合的成员:SISMEMBER key member
SISMEMBER myset "one"
---> 0
四、得到两个集合的交集:SINTER key [key ...]
五、获取并删除一个集合里面的元素:SPOP key [count](不加下标就随机返回)
六、从集合里删除一个或多个元素,不存在的元素会被忽略:SREM key member [member ...]
5、Sorted Set(有序集合)
应用场景:set不是自动有序的,而sorted set能够经过用户额外提供一个优先级(score)的参数来为成员排序,而且是插入有序的,即自动排序。当你须要一个有序的而且不重复的集合列表,那么能够选择sorted set数据结构,好比twitter 的public timeline能够以发表时间做为score来存储,这样获取时就是自动按时间排好序的。
一、添加一个或多个成员到有序集合,或者若是它已经存在更新其分数:ZADD key score1 member1 [score2 member2]
zadd dbs 100 redis
zadd dbs 98 memcached
zadd dbs 99 mongodb
zadd dbs 99 leveldb
二、获得的有序集合成员的数量:ZCARD key
zcard dbs
----> (integer) 4
三、计算一个有序集合成员与给定值范围内的分数:ZCOUNT key min max
zcount dbs 10 99
----> (integer) 3
四、肯定成员的索引中有序集合:ZRANK key member
zrank dbs leveldb
----> (integer) 1
zrank dbs other
----> (nil)
五、在给定的分数以内删除全部成员的有序集合:ZREMRANGEBYSCORE key min max
zrangebyscore dbs 98 100
----> 1) "memcached"
----> 2) "leveldb"
----> 3) "mongodb"
----> 4) "redis"