/**
* redis 列表 List Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
*/
//lpush 新增一个列,多个列可以用空格隔开,redis 低版本只能一次一个列
redis 127.0.0.1:6379> lpush list cwb
(integer) 1
//插入一个表头元素,当且仅当列表key存在时,才能插入。返回列表中元素的个数
redis 127.0.0.1:6379> lpushx list vv
(integer) 3
//将一个或多个值插入到队列的队尾。多值时,从左到右依次添加。返回列表中元素个数
redis 127.0.0.1:6379> rpush list duo
(integer) 4
//讲值插入到列表队尾,当且仅当列表key存在时,才添加。返回列表元素个数
redis 127.0.0.1:6379> rpushx list tttt
(integer) 5
//通过索引index获取列表的元素。 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推
redis 127.0.0.1:6379> lindex list 1
"nihao"
redis 127.0.0.1:6379> lindex list -1
"tttt"
//lrange 返回一个开始和结束位置, 0 -1返回所有列
redis 127.0.0.1:6379> lrange list 0 -1
//设置列表指定索引的值,如果指定索引不存在则报错
redis 127.0.0.1:6379> lset list 2 vb
OK
//保留指定区域的元素,其他元素全部删除
redis 127.0.0.1:6379> ltrim list 0 2
OK
//移除并返回表头元素
redis 127.0.0.1:6379> rpop list
"vb"
//移除并返回表尾元素
redis 127.0.0.1:6379> lpop list
"nihao"
//获取长度
redis 127.0.0.1:6379> llen list
/**
* Redis 无序集合, Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
**/
//sadd 添加一个或多个集合
redis 127.0.0.1:6379> sadd list redis redis2
(integer) 1
//smembers 获取集合
redis 127.0.0.1:6379> smembers list
1) "redis"
2) "redis2"
3) "redis3"
//判断值是否是redis的list 。如果值是redis 的list 返回1,否则,返回0
redis 127.0.0.1:6379> sismember list redis
(integer) 1
//返回set的member个数,如果set不存在,返回0
redis 127.0.0.1:6379> scard list
(integer) 3
//从set中返回一个随机member
redis 127.0.0.1:6379> srandmember list
"redis2"
// 将 list2 里的 值 kkk 移动到 list
redis 127.0.0.1:6379> smove list2 list kkk
(integer) 1
//Redis Sunion 命令返回给定集合的并集。不存在的集合 key 被视为空集。(简单说,合并两个集合,移除重复)
# Sdiff 刚好与之相反
redis 127.0.0.1:6379> sunion list list2
/**
有序集合
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
**/
//新增一个 有序集合
redis 127.0.0.1:6379> zadd key 1 "hellow"
(integer) 1
redis 127.0.0.1:6379> zadd key 2 "hello"
(integer) 1
redis 127.0.0.1:6379> zrange key 0 -1
1) "hellow"
2) "hello"
redis 127.0.0.1:6379> zrange key 0 -1 withscores
1) "hellow"
2) "1"
3) "hello"
4) "2"
redis 127.0.0.1:6379>