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

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。