一.redis数据结构之字符串
1.赋值与取值命令
2.删除命令
3.数值增减
对一个没定义的key 默认为 0
增加减少指定数值
4.扩展
在已经存在的key 添加 值
在不存在的key扩展value
二.redis数据结构之hash存储
1,赋值与取值
del key 就是把整个都给删除了
3.增加减少数字
127.0.0.1:6379> hset myhash num 20
(integer) 1
127.0.0.1:6379> hincrby myhash num 5
(integer) 25
4.自学命令
判断某个字段是否存在
127.0.0.1:6379> hexists myhash username
(integer) 0
127.0.0.1:6379> hexists myhash num
(integer) 1
求hash里有多少对hash值
127.0.0.1:6379> hlen myhash
(integer) 2
分别求出key与value
127.0.0.1:6379> hkeys myhash
1) "age"
2) "num"
127.0.0.1:6379> hvals myhash
1) "20"
2) "25"
三.redis数据结构之list
一.两端添加
左添加
127.0.0.1:6379> lpush mylist1 a b c
(integer) 3
127.0.0.1:6379> lpush mylist1 1 2 3
(integer) 6
127.0.0.1:6379> lrange mylist1 0 5
1) "3"
2) "2"
3) "1"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lrange mylist1 0 -1
1) "3"
2) "2"
3) "1"
4) "c"
5) "b"
上下索引可以交错来记录,比如1 -1 就是 2 1 c b a
这是左推进的示意图
右添加
127.0.0.1:6379> rpush mylist2 a b c
(integer) 3
127.0.0.1:6379> rpush mylist2 1 2 3
(integer) 6
127.0.0.1:6379> lrange mylist2 0 -1
1) "a"
2) "b"
3) "c"
4) "1"
5) "2"
6) "3"
二.两端弹出
127.0.0.1:6379> lpop mylist1
"3"
127.0.0.1:6379> rpop mylist1
"a"
三.长度命令
127.0.0.1:6379> llen mylist1
(integer) 4
四.扩展命令
加入指定的元素
127.0.0.1:6379> lpushx mylist1 baidu
(integer) 6
127.0.0.1:6379> lrange mylist1 0 -1
1) "baidu"
2) "x"
3) "2"
4) "1"
5) "c"
6) "b"
127.0.0.1:6379> rpushx mylist1 y
(integer) 7
127.0.0.1:6379> lrange mylist1 0 -1
1) "baidu"
2) "x"
3) "2"
4) "1"
5) "c"
6) "b"
7) "y"
移除指定元素命令
127.0.0.1:6379> lrem mylist1 0 y
(integer) 2
lrem key count value
删除count个value元素
count为正数从前往后删除
为负数从后往前删除
为0就是删除所有
更改某个索引位置的元素
127.0.0.1:6379> lset mylist3 0 5
OK
在某个元素前或后添加元素
127.0.0.1:6379> linsert mylist3 before c 6#在元素c前面添加元素6
(integer) 7
127.0.0.1:6379> linsert mylist3 after c 7#在元素c后面添加元素7
(integer) 7
(integer) 7
rpoplpush 命令
将一个集合右边的元素弹出到另一个集合的左边
127.0.0.1:6379> lpush mylist5 1 2 3
(integer) 3
127.0.0.1:6379> lpush mylist6 a b c
(integer) 3
127.0.0.1:6379> rpoplpush mylist5 mylist6
"1"
127.0.0.1:6379> lrange mylist5 0 -1
1) "3"
2) "2"
127.0.0.1:6379> lrange mylist6 0 -1
1) "1"
2) "c"
3) "b"
4) "a"
四.redis数据结构之set
1.添加/删除元素
127.0.0.1:6379> sadd myset1 a b c d
(integer) 4
127.0.0.1:6379> smembers myset1
1) "d"
2) "c"
3) "a"
4) "b"
127.0.0.1:6379> srem myset1 d#删除元素d
(integer) 1
2.集合中的差集运算
127.0.0.1:6379> sadd myset2 a b 1 2
(integer) 4
127.0.0.1:6379> sdiff myset1 myset2 #前者包含的元素减去两者共同拥有的元素
1) "c"
127.0.0.1:6379> sdiff myset2 myset1
1) "1"
2) "2"
3.集合中的交集运算
127.0.0.1:6379> sinter myset1 myset2
1) "b"
2) "a"
4,集合中的并集运算
127.0.0.1:6379> sunion myset1 myset2
1) "b"
2) "c"
3) "1"
4) "a"
5) "2"
5.扩展命令
求set的size
127.0.0.1:6379> scard myset1
(integer) 3
将差集的元素放到另一个集合中保存起来
127.0.0.1:6379> sdiffstore mydiffset myset1 myset2
(integer) 1
127.0.0.1:6379> SMEMBERS mydiffset
1) "c"
将交集的元素放到另一个集合中保存起来
127.0.0.1:6379> sinterstore myinterset myset1 myset2
(integer) 2
127.0.0.1:6379> SMEMBERS myinterset
1) "a"
2) "b"
将并集的元素放到另一个集合中保存起来
127.0.0.1:6379> sunionstore myunionset myset1 myset2
(integer) 5
127.0.0.1:6379> SMEMBERS myunionset
1) "b"
2) "c"
3) "1"
4) "a"
5) "2"
五.redis数据结构之Sorted-set
添加元素
127.0.0.1:6379> zadd mysort1 1 a 2 b 3 c
(integer) 3
127.0.0.1:6379> zscore mysort1 a
"1"
移除指定元素
127.0.0.1:6379> zrem mysort1 a
(integer) 1
移除多个元素
127.0.0.1:6379> ZREMRANGEBYRANK mysort 1 3
(integer) 3
127.0.0.1:6379> ZREMRANGEBYSCORE myscort 0 1
(integer) 0
查看sort的size
127.0.0.1:6379> zcard mysort1
(integer) 2
查看元素包含分数
127.0.0.1:6379> zrange mysort1 0 -1 withscores
1) "b"
2) "2"
3) "c"
4) "3"
查看元素
按位置查看
127.0.0.1:6379> zrange mysort1 0 -1
1) "b"
2) "2"
3) "c"
4) "3"
按分数范围查看
127.0.0.1:6379> zadd mysort2 80 jack 90 rose 100 wade
(integer) 3
127.0.0.1:6379> ZRANGEBYSCORE mysort2 80 100
1) "jack"
2) "rose"
3) "wade"
127.0.0.1:6379> ZRANGEBYSCORE mysort2 80 100 withscores
1) "jack"
2) "80"
3) "rose"
4) "90"
5) "wade"
6) "100"
扩展命令
127.0.0.1:6379> ZINCRBY mysort2 5 jack#增加某个元素的分数值
"85"
127.0.0.1:6379> zcount mysort2 80 100#统计某个分数段里的元素个数
(integer) 3
使用场景