redis数据类型
1.Redis strings
> set key1 aaa > get key1
set命令将取代现有的任何已经存在的key。SET命令还有一个提供附加参数的选项,能够让SET命令只有在没有相同key的情况下成功
反之,可以让SET命令在有相同key值得情况下成功。
> set key2 bbb nx > set key2 ccc xx
也可以对其进行一些有趣的操作,例如加法器:
> set counter 100 > incr counter
> incrby counter 50
INCR命令让the value 成为一个整数,运行一次INCR便+1。
INCRBY命令便是一个加法运算。
减法运算为: DECR and DECRBY
用MSET and MGET 命令完成一次性的完成多个key-value的对应关系,使用MGET命令,Redis返回一个value数组
> mset a 10 b 20 c 30 > mget a b c
2.Redis Lists
列表是简单的字符串列表,按照插入顺序排序。
可以添加一个元素导列表的头部(左边)或者尾部(右边)
LPUSH 命令插入一个新的元素导头部, 而 RPUSH插入一个新元素导尾部.
当一个这两个操作在一个空的Key上被执行的时候一个新的列表被创建。
如果一个列表操作清空一个列表那么对应的key将被从key空间删除。
> rpush list A > rpush list B > lpush list first > lrange list 0 -1
LRANGE 利用了两个检索值,0表示list的开头第一个,-1表示list的倒数第一个,即最后一个。-2则便是list的倒数第二个,以此类推。
一次加入多个元素放入list
> rpush list 1 2 3 4 5 "aa" > lrange list 0 -1
POP命令返回值为取出list的元素。和PUSH操作类似,POP命令可以选择不同的方向取出元素.
> del list > rpush list a b c > rpop list > lrange list 0 -1
3.Redis Hashes
Redis Hashes是字符串字段和字符串值之间的映射,因此是展现对象的完美数据类型。
> hmset user:100 username aaa birthyear 1989 verified 1 > hget user:100 username > hget user:100 birthyear > hgetall user:100 > hmget user:100 username birthyear no-such-field
HMSET命令设置一个多域的hash表,HGET命令获取指定的单域,HGETALL命令获取指定key的所有信息。
HMGET类似于HGET,只是返回一个value数组
可以根据需要对hash表的表项进行单独的操作,例如 HINCRBY
> hincrby user:100 birthyear 10
4.Redis 无序集合
集合(Set)是一个无序的字符串集合
Redis 集合拥有令人满意的不允许包含相同成员的属性。多次添加相同的元素,最终在集合里只会有一个元素。
> sadd set1 1 2 3 > smembers set1
SADD命令产生一个无序集合,返回集合的元素个数。SMEMBER用于查看集合。
SISMEMBER用于查看集合是否存在,匹配项包括集合名和元素个数。匹配成功返回1,匹配失败返回0.
> sismember set1 3 > sismember mys 3
5.Redis有序集合
Redis有序集合,是一个没有重复元素的字符串集合。
成员都关联了一个评分,这个评分被用来按照从最低分到最高分的方式排序集合中的成员。
> zadd hackers 110 "aa" > zadd hackers 120 "bb" > zadd hackers 130 "cc" > zadd hackers 100 "dd" > zrange hackers 0 -1 > zrevrange hackers 0 -1 > zrange hackers 0 -1 withscores
ZADD添加成员
ZRANGE是查看正序的集合,ZREVRANGE是查看反序的集合。0表示集合第一个元素,-1表示集合的倒数第一个元素。
使用WITHSCORES 参数返回,成员和评分