-
五种数据类型
- 字符串(String)
- 字符串列表(list)
- 哈希(hash)
- 字符串集合(set)
- 有序字符串集合(sorted set)
-
存储String
常用命令:
- 赋值 set "key" "value" 例:set name raychen
- 取值 get "key" l 例:get name
- 删除del "key" 例:del name
- 数值增加 incr n 默认为0 get n 得到1
- 数值减少 decr
- 追加字符串 append "key" "value" 例: append name test
-
存储Hash
String key和String Value的Map容器 每一个Hash可以存储4294967295个键值对
存储Hash常用命令:
- 赋值、 取值
单个赋值 hset "Mapname" "key" " value"
127.0.0.1:6379> hset my name ray
(integer) 1
127.0.0.1:6379> hget my name
"ray"
127.0.0.1:6379>
多个一起赋值 hset "MapName" "key1" "value1" "key2" "value2"
127.0.0.1:6379> hmset my2 age 27 hig 170
OK
127.0.0.1:6379> hmget my2 age
1) "27"
127.0.0.1:6379> hmget my2 hig
1) "170"
127.0.0.1:6379> hmget my2 age hig
1) "27"
2) "170"
127.0.0.1:6379> hgetall my2
1) "age"
2) "27"
3) "hig"
4) "170"
5) "sex"
6) "male"
7) "addr"
8) "shenzhen"
127.0.0.1:6379>
- 删除
可以一次删除一个或者多个
127.0.0.1:6379> hdel my2 age hig
(integer) 2
127.0.0.1:6379> hgetall my2
1) "sex"
2) "male"
3) "addr"
4) "shenzhen"
127.0.0.1:6379>
- 增加数字
127.0.0.1:6379> hset my number1 10
(integer) 1
127.0.0.1:6379> hget my number1
"10"
127.0.0.1:6379> hincrby my number1 10
(integer) 20
127.0.0.1:6379> hget my number1
"20"
127.0.0.1:6379>
- 判断字段是否存在(1表示存在 0表示不存在)
127.0.0.1:6379> HEXISTS my number1
(integer) 1
127.0.0.1:6379> HEXISTS my number2
(integer) 0
127.0.0.1:6379>
- 获取hash属性个数(hlen)
127.0.0.1:6379> hgetall my
1) "name"
2) "ray"
3) "number1"
4) "20"
5) "a1"
6) "a1str"
7) "a2"
8) "a2str"
127.0.0.1:6379> hlen my
(integer) 4
127.0.0.1:6379>
- 获取hash所有属性名称
127.0.0.1:6379> hvals my
1) "ray"
2) "20"
3) "a1str"
4) "a2str"
127.0.0.1:6379> hvals my2
1) "male"
2) "shenzhen"
127.0.0.1:6379>
-
存储list
添加list
lpush key values 从左端开始添加、rpush key values 从右端开始添加;
lrange 获取指定方位的集合元素 lrange key beginIndex(0开始) endIndex(-1结束)
127.0.0.1:6379> lpush l0 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange l0 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpush l1 a b c d e
(integer) 5
127.0.0.1:6379> lrange l1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379>
lpop 左侧弹出集合元素、rpop 右侧弹出集合元素;
127.0.0.1:6379> lrange l1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> lpop l1
"a"
127.0.0.1:6379> lrange l1 0 -1
1) "b"
2) "c"
3) "d"
4) "e"
127.0.0.1:6379> rpop l1
"e"
127.0.0.1:6379> lrange l1 0 -1
1) "b"
2) "c"
3) "d"
127.0.0.1:6379>
lpushx 集合头部插入元素、rpushx 集合尾部插入元素;llen 查看元素个数
127.0.0.1:6379> lrange l1 0 -1
1) "b"
2) "c"
3) "d"
127.0.0.1:6379> lpushx l1 xxxx
(integer) 4
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> rpushx l1 yyyy
(integer) 5
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "b"
3) "c"
4) "d"
5) "yyyy"
127.0.0.1:6379> llen l1
(integer) 5
lrem 从指定方向删除指定个数的指定元素(左边从0 开始,右边从-1开始) lrem key count value
- count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
- count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
- count = 0 : 移除表中所有与 value 相等的值
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "b"
4) "a"
5) "a"
6) "xxxx"
7) "b"
8) "c"
9) "d"
10) "yyyy"
127.0.0.1:6379> lrem l1 2 a
(integer) 2
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "b"
4) "xxxx"
5) "b"
6) "c"
7) "d"
8) "yyyy"
127.0.0.1:6379> lrem l1 -1 xxxx
(integer) 1
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "b"
4) "b"
5) "c"
6) "d"
7) "yyyy"
127.0.0.1:6379> lrem l1 0 b
(integer) 2
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "c"
4) "d"
5) "yyyy"
lset 设置集合指定索引的值 lset key index value
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "c"
4) "d"
5) "yyyy"
127.0.0.1:6379> lset l1 2 a
OK
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "a"
4) "d"
5) "yyyy"
127.0.0.1:6379>
linsert 在集合里插入指定元素 linsert key BEFORE|AFTER pivot value
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "a"
4) "d"
5) "yyyy"
127.0.0.1:6379> linsert l1 before a aaaaaa
(integer) 6
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "aaaaaa"
4) "a"
5) "d"
6) "yyyy"
127.0.0.1:6379> linsert l1 after d dddddddd
(integer) 7
127.0.0.1:6379> lrange l1 0 -1
1) "xxxx"
2) "c"
3) "aaaaaa"
4) "a"
5) "d"
6) "dddddddd"
7) "yyyy"
127.0.0.1:6379>
rpoplpush 把A集合尾部元素弹出并插入到B集合头部
127.0.0.1:6379> lrange l4 0 -1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> lrange l3 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> RPOPLPUSH l3 l4
"c"
127.0.0.1:6379> lrange l4 0 -1
1) "c"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> lrange l3 0 -1
1) "a"
2) "b"
127.0.0.1:6379>
-
存储Set
和List类型不同的是,Set集合中无序且不重复的元素、Set可包含的最大元素数量是4294967295
添加元素 sadd key members 、删除元素srem key member、查看元素 smembers key 、
判断集合中是否存在某个元素 返回1 表示存在 返回0表示不存在 sismember key member
127.0.0.1:6379> sadd set2 a1 a2 a3 a4
(integer) 4
127.0.0.1:6379> smembers set2
1) "a4"
2) "a1"
3) "a3"
4) "a2"
127.0.0.1:6379> srem set2 a3
(integer) 1
127.0.0.1:6379> smembers set2
1) "a4"
2) "a1"
3) "a2"
127.0.0.1:6379> sismember set2 a2
(integer) 1
127.0.0.1:6379> sismember set2 a10
(integer) 0
127.0.0.1:6379>
集合中的差集运算 sdiff key1 key2 ;
集合中的交集运算 sinter key1 key2;
集合中的并集元算sunion key1 key2
127.0.0.1:6379> sadd set3 a b c d
(integer) 4
127.0.0.1:6379> sadd set4 aj a sk s c
(integer) 5
127.0.0.1:6379> sdiff set3 set4
1) "d"
2) "b"
127.0.0.1:6379> sdiff set4 set3
1) "s"
2) "aj"
3) "sk"
127.0.0.1:6379> sinter set3 set4
1) "c"
2) "a"
127.0.0.1:6379> sunion set3 set4
1) "d"
2) "a"
3) "s"
4) "aj"
5) "c"
6) "sk"
7) "b"
127.0.0.1:6379>
sunionstore把并集结果存储到新集合中;
sinterstore 把交集结果存储到新集合中;
scard计算元素总数;
sdiffstore 把差集结果存储到新集合中;
srandmember 随机取一个元素;
-
存储Sorted-Set
Sorted-Set中的成员在集合中的位置是有序的
添加元素 zadd key score member、查看元素 zrange key index1 index2、查看评分 zscore key member
127.0.0.1:6379> zadd sort1 1 a 2 b 3 c
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> zscore sort1 a
"1"
添加相同的元素时候 评分被覆盖
127.0.0.1:6379> zadd sort1 9 a
(integer) 0
127.0.0.1:6379> zscore sort1 a
"9"
删除元素 zrem key members...
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "b"
3) "c"
4) "e"
5) "f"
127.0.0.1:6379> zrem sort1 a c
(integer) 2
127.0.0.1:6379> zrange sort1 0 -1
1) "b"
2) "e"
3) "f"
127.0.0.1:6379>
查询元素个数 zcard key 查询元素及评分 zrange key index1 index2 withscore
127.0.0.1:6379> zcard sort1
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1 withscore
(error) ERR syntax error
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "b"
2) "10"
3) "e"
4) "12"
5) "f"
6) "13"
127.0.0.1:6379>
zrevrange 降序排列
127.0.0.1:6379> zrevrange sort1 0 -1 withscores
1) "m"
2) "25"
3) "l"
4) "23"
5) "f"
6) "13"
7) "e"
8) "12"
9) "b"
10) "10"
11) "k"
12) "1"
127.0.0.1:6379>
zremrangebyrank 根据排名来删除元素
127.0.0.1:6379> zremrangebyrank sort1 0 2
(integer) 3
127.0.0.1:6379> zrevrange sort1 0 -1 withscores
1) "m"
2) "25"
3) "l"
4) "23"
5) "f"
6) "13"
zremrangebyscore 根据具体评分范围来删除元素
zrangebyscore 根据评分范围来查找元素
zincrby 给指定元素加分
zcount 查找指定评分范围的元素个数
127.0.0.1:6379> zrevrange sort1 0 -1 withscores
1) "w"
2) "50"
3) "z"
4) "46"
5) "y"
6) "45"
7) "x"
8) "44"
9) "m"
10) "25"
11) "l"
12) "23"
13) "f"
14) "13"
127.0.0.1:6379> zremrangebyscore sort1 40 45
(integer) 2
127.0.0.1:6379> zrevrange sort1 0 -1 withscores
1) "w"
2) "50"
3) "z"
4) "46"
5) "m"
6) "25"
7) "l"
8) "23"
9) "f"
10) "13"
127.0.0.1:6379> zrangebyscore sort1 18 23 withscores
1) "l"
2) "23"
127.0.0.1:6379> zincrby sort1 10 w
"60"
127.0.0.1:6379> zcount sort1 10 60
(integer) 5
127.0.0.1:6379>