一、list和set的区别:
list 有序可重复
set 无序不重复
二、代码实操(Llist、Set、Hash、Zset的常用指令):
<1>List常用命令:
(1)lpush/rpush <key><value1><value2><value3> .... 从左边/右边插入一个或多个值。
(2)lpop/rpop <key>从左边/右边吐出一个值。值在键在,值光键亡。
(3)rpoplpush <key1><key2>从<key1>列表右边吐出一个值,插到<key2>列表左边。
(4)lrange <key><start><stop>
按照索引下标获得元素(从左到右)
(5)lrange mylist 0 -1 0左边第一个,-1右边第一个,(0-1表示获取所有)
(6)lindex <key><index>按照索引下标获得元素(从左到右)
(7)llen <key>获得列表长度
(8)linsert <key> before <value><newvalue>在<value>的前面插入<newvalue>插入值
(9)lrem <key><n><value>从左边删除n个value(从左到右)
(10)lset<key><index><value>将列表key下标为index的值替换成value
<2>Set常用命令
(1)sadd <key><value1><value2> .....
将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略
smembers <key>取出该集合的所有值。
(2)sismember <key><value>判断集合<key>是否为含有该<value>值,有1,没有0
(3)scard<key>返回该集合的元素个数。
(4)srem <key><value1><value2> .... 删除集合中的某个元素。
(5)spop <key>随机从该集合中吐出一个值。
(6)srandmember <key><n>随机从该集合中取出n个值。不会从集合中删除 。
(7)smove <source><destination><value>把集合中一个值从一个集合移动到另一个集合
(8)sinter <key1><key2>返回两个集合的交集元素。
(9)sunion <key1><key2>返回两个集合的并集元素。
(10)sdiff <key1><key2>返回两个集合的差集元素(key1中的,不包含key2中的)
<3>hash常用命令
(1)hset <key><field><value>给<key>集合中的 <field>键赋值<value>
hget <key><field>从<key>集合<field>取出 value
hmget <key><field1><field2>从<key>集合<field1><field2>取出 value
(2)hgetall <key> 取出所有的键和值
(3)hmset <key><field1><value1><field2><value2>... 批量设置hash的值
(4)hexists<key><field>查看哈希表 key 中,给定域 field 是否存在。
(5)hkeys <key>列出该hash集合的所有field
(6)hvals <key>列出该hash集合的所有value
(7)hincrby <key><field><increment>为哈希表 key 中的域 field 的值加上增量 1 -1
(8)hsetnx <key><field><value>将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .
<4>Zset常用命令
(1)zadd <key><score1><value1><score2><value2>…
将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
zrange <key><start><stop> [WITHSCORES]
返回有序集 key 中,下标在<start><stop>之间的元素
带WITHSCORES,可以让分数一起和值返回到结果集。
(2)zrangebyscore key min max
返回有序集 key 中,所有 scor e 值介于 min 和 max 之间(包括等于 min 或 max ,开区间加上前括号“(”)的成员。有序集成员按 score 值递增(从小到大)次序排列。
(3)zrevrangebyscore key max min
同上,改为从大到小排列。
(4)zincrby <key><increment><value> 为元素的score加上增量
(5)zrem <key><value>删除该集合下,指定值的元素
(6)zremrangebyscore <key> <min> <max> 删除有序集合中给定的分数区间所有成员
(7)zremrangebyrank <key> <start> <stop> 删除有序集合中给定的排名区间的所有成员
(8)zcount <key><min><max>统计该集合,分数区间内的元素个数
(9)zrank <key><value>返回该值在集合中的排名,从0开始。