一、list和set的区别:

list 有序可重复

set 无序不重复  

二、代码实操(Llist、Set、Hash、Zset的常用指令):

<1>List常用命令:

(1)lpush/rpush  <key><value1><value2><value3> .... 从左边/右边插入一个或多个值。

redis 全部pop redis zset pop_servlet

(2)lpop/rpop  <key>从左边/右边吐出一个值。值在键在,值光键亡。

 

redis 全部pop redis zset pop_servlet_02

(3)rpoplpush  <key1><key2>从<key1>列表右边吐出一个值,插到<key2>列表左边。

redis 全部pop redis zset pop_java_03

(4)lrange <key><start><stop>

按照索引下标获得元素(从左到右)

redis 全部pop redis zset pop_redis 全部pop_04

(5)lrange mylist 0 -1   0左边第一个,-1右边第一个,(0-1表示获取所有)

redis 全部pop redis zset pop_常用命令_05

(6)lindex <key><index>按照索引下标获得元素(从左到右)

redis 全部pop redis zset pop_redis_06

(7)llen <key>获得列表长度

redis 全部pop redis zset pop_常用命令_07

(8)linsert <key>  before <value><newvalue>在<value>的前面插入<newvalue>插入值

redis 全部pop redis zset pop_常用命令_08

(9)lrem <key><n><value>从左边删除n个value(从左到右)

redis 全部pop redis zset pop_redis_09

(10)lset<key><index><value>将列表key下标为index的值替换成value

redis 全部pop redis zset pop_java_10

 

<2>Set常用命令

(1)sadd <key><value1><value2> .....

将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略

smembers <key>取出该集合的所有值。

redis 全部pop redis zset pop_redis_11

(2)sismember <key><value>判断集合<key>是否为含有该<value>值,有1,没有0

redis 全部pop redis zset pop_redis_12

(3)scard<key>返回该集合的元素个数。

redis 全部pop redis zset pop_redis_13

(4)srem <key><value1><value2> .... 删除集合中的某个元素。

redis 全部pop redis zset pop_java_14

(5)spop <key>随机从该集合中吐出一个值。

redis 全部pop redis zset pop_redis_15

(6)srandmember <key><n>随机从该集合中取出n个值。不会从集合中删除 。

redis 全部pop redis zset pop_java_16

(7)smove <source><destination><value>把集合中一个值从一个集合移动到另一个集合

redis 全部pop redis zset pop_常用命令_17

(8)sinter <key1><key2>返回两个集合的交集元素。

redis 全部pop redis zset pop_redis_18

(9)sunion <key1><key2>返回两个集合的并集元素。

redis 全部pop redis zset pop_redis_19

(10)sdiff <key1><key2>返回两个集合的差集元素(key1中的,不包含key2中的)

redis 全部pop redis zset pop_redis 全部pop_20

 

<3>hash常用命令

(1)hset <key><field><value>给<key>集合中的  <field>键赋值<value>

hget <key><field>从<key>集合<field>取出 value

hmget <key><field1><field2>从<key>集合<field1><field2>取出 value

redis 全部pop redis zset pop_servlet_21

(2)hgetall <key> 取出所有的键和值

redis 全部pop redis zset pop_redis_22

(3)hmset <key><field1><value1><field2><value2>... 批量设置hash的值

redis 全部pop redis zset pop_java_23

(4)hexists<key><field>查看哈希表 key 中,给定域 field 是否存在。

redis 全部pop redis zset pop_常用命令_24

(5)hkeys <key>列出该hash集合的所有field

redis 全部pop redis zset pop_常用命令_25

(6)hvals <key>列出该hash集合的所有value

redis 全部pop redis zset pop_redis 全部pop_26

(7)hincrby <key><field><increment>为哈希表 key 中的域 field 的值加上增量 1   -1

redis 全部pop redis zset pop_redis_27

(8)hsetnx <key><field><value>将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .

redis 全部pop redis zset pop_redis_28

 

<4>Zset常用命令

(1)zadd  <key><score1><value1><score2><value2>… 

将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

zrange <key><start><stop>  [WITHSCORES]   

返回有序集 key 中,下标在<start><stop>之间的元素

带WITHSCORES,可以让分数一起和值返回到结果集。

redis 全部pop redis zset pop_java_29

(2)zrangebyscore key min max

返回有序集 key 中,所有 scor  e 值介于 min 和 max 之间(包括等于 min 或 max ,开区间加上前括号“(”)的成员。有序集成员按 score 值递增(从小到大)次序排列。

redis 全部pop redis zset pop_redis_30

(3)zrevrangebyscore key max min

同上,改为从大到小排列。

redis 全部pop redis zset pop_servlet_31

(4)zincrby <key><increment><value>      为元素的score加上增量

redis 全部pop redis zset pop_servlet_32

(5)zrem  <key><value>删除该集合下,指定值的元素

redis 全部pop redis zset pop_redis 全部pop_33

(6)zremrangebyscore  <key> <min> <max> 删除有序集合中给定的分数区间所有成员

redis 全部pop redis zset pop_servlet_34

(7)zremrangebyrank <key> <start> <stop> 删除有序集合中给定的排名区间的所有成员

redis 全部pop redis zset pop_java_35

(8)zcount <key><min><max>统计该集合,分数区间内的元素个数

redis 全部pop redis zset pop_java_36

redis 全部pop redis zset pop_servlet_37

(9)zrank <key><value>返回该值在集合中的排名,从0开始。

redis 全部pop redis zset pop_redis 全部pop_38