lpush 在key 对应 list的头部添加字符串元素
INCR命令用于将键的整数值递增1
Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素 list
Sadd 命令将一个或多个成员元素加入到集合中 smembers查看集合 set
对于集合的使用,也有一些常见的方式,比如,QQ有一个社交功能叫做“好友标签”,大家可以给你的好友贴标签,比如“大美女”、“土豪”、“欧巴”等等,这时就可以使用redis的集合来实现,把每一个用户的标签都存储在一个集合之中
【redis数据结构 – 有序集合】
redis不但提供了无需集合(sets),还很体贴的提供了有序集合(sorted sets)。有序集合中的每个元素都关联一个序号(score),这便是排序的依据。
很多时候,我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等
老规矩,我们来看几个生动的例子:
//新增一个有序集合myzset,并加入一个元素baidu.com,给它赋予的序号是1:
代码如下:
127.0.0.1:6379> zadd myzset 1 baidu.com
(integer) 1
//向myzset中新增一个元素360.com,赋予它的序号是3
127.0.0.1:6379> zadd myzset 3 360.com
(integer) 1
//向myzset中新增一个元素google.com,赋予它的序号是2
127.0.0.1:6379> zadd myzset 2 google.com
(integer) 1
//列出myzset的所有元素,同时列出其序号,可以看出myzset已经是有序的了。
127.0.0.1:6379> zrange myzset 0 -1 with scores
1) "baidu.com"
2) "1"
3) "google.com"
4) "2"
5) "360.com"
6) "3"
//只列出myzset的元素
127.0.0.1:6379> zrange myzset 0 -1
1) "baidu.com"
2) "google.com"
3) "360.com"
【redis数据结构 – 哈希】
最后要给大家介绍的是hashes,即哈希。哈希是从redis-2.0.0版本之后才有的数据结构。
hashes存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适合使用哈希。
我们来看一个例子:
代码如下:
//建立哈希,并赋值
127.0.0.1:6379> HMSET user:001 username antirez password P1pp0 age 34
OK
//列出哈希的内容
127.0.0.1:6379> HGETALL user:001
1) "username"
2) "antirez"
3) "password"
4) "P1pp0"
5) "age"
6) "34"
//更改哈希中的某一个值
127.0.0.1:6379> HSET user:001 password 12345
(integer) 0
//再次列出哈希的内容
127.0.0.1:6379> HGETALL user:001
1) "username"
2) "antirez"
3) "password"
4) "12345"
5) "age"
6) "34"
zset(sorted set:有序集合)
Redis中的zset和set一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。Redis正是通过分数来为集合中的成员进行从小到大的排序的。zset的成员是唯一的,但分数(score)却可以重复。
实例
这里我将使用如下命令:
- zadd——添加元素,用法:
zadd key score1 value1 [score2 value2 score3 value3 ...]
。 - zrange——获取排名在某个范围的元素,用法:
zrange key start stop [WITHSCORE]
,按照元素从小到大的顺序排序,从0开始编号,包含start和stop对应的元素,WITHSCORE选项表示是否返回元素分数。 - zrevrange——获取排名在某个范围的元素,用法:
zrevrange key start stop [WITHSCORE]
,和上一个命令用法一样,只是这个倒序排序的。 - zrem——删除一个或多个元素,用法:
zrem key value1 [value2 ...]
。
我们首先使用zadd命令向zset1集合中添加元素,然后使用zrange zset1 0 -1
命令获得集合中的所有元素(通过分数来为集合中的成员进行从小到大的排序),如下所示。
192.168.25.128:6379> zadd zset1 2 a 5 b 1 c 6 d
(integer) 4
192.168.25.128:6379> zrange zset1 0 -1
1) "c"
2) "a"
3) "b"
4) "d"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
然后使用zrem命令删除zset1集合中的“a”元素,然后使用zrange zset1 0 -1
命令获得集合中的所有元素(通过分数来为集合中的成员进行从小到大的排序),如下所示。
192.168.25.128:6379> zrem zset1 a
(integer) 1
192.168.25.128:6379> zrange zset1 0 -1
1) "c"
2) "b"
3) "d"
- 1
- 2
- 3
- 4
- 5
- 6
接着我们使用zrevrange zset1 0 -1
命令获得集合中的所有元素(通过分数来为集合中的成员进行从大到小的排序),如下所示。
192.168.25.128:6379> zrevrange zset1 0 -1
1) "d"
2) "b"
3) "c"
- 1
- 2
- 3
- 4
还可以使用zrange zset1 0 -1 withscores
命令查看元素及其分数,如下所示。
192.168.25.128:6379> zrange zset1 0 -1 withscores
1) "c"
2) "1"
3) "b"
4) "5"
5) "d"
6) "6"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
当然了,也可使用zrevrange zset1 0 -1 withscores
命令查看元素及其分数,不过是通过分数来为集合中的成员进行从大到小排序的。
192.168.25.128:6379> zrevrange zset1 0 -1 withscores
1) "d"
2) "6"
3) "b"
4) "5"
5) "c"
6) "1"