Redis入门--redis的数据结构

一.redis数据结构之字符串


Redis入门--redis的数据结构_第1张图片 Redis入门--redis的数据结构_第2张图片


1.赋值与取值命令

 



2.删除命令

    Redis入门--redis的数据结构_第3张图片

3.数值增减  
Redis入门--redis的数据结构_第4张图片

对一个没定义的key 默认为 0 

增加减少指定数值
Redis入门--redis的数据结构_第5张图片

  4.扩展 

在已经存在的key 添加 值

Redis入门--redis的数据结构_第6张图片

在不存在的key扩展value






二.redis数据结构之hash存储




Redis入门--redis的数据结构_第7张图片
Redis入门--redis的数据结构_第8张图片


1,赋值与取值
Redis入门--redis的数据结构_第9张图片

2.删除
Redis入门--redis的数据结构_第10张图片

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

Redis入门--redis的数据结构_第11张图片

Redis入门--redis的数据结构_第12张图片

一.两端添加

左添加

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
这是左推进的示意图

Redis入门--redis的数据结构_第13张图片


右添加

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

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入门--redis的数据结构_第14张图片

四.redis数据结构之set

Redis入门--redis的数据结构_第15张图片

Redis入门--redis的数据结构_第16张图片


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入门--redis的数据结构_第17张图片

五.redis数据结构之Sorted-set


Redis入门--redis的数据结构_第18张图片


添加元素

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


使用场景

Redis入门--redis的数据结构_第19张图片

你可能感兴趣的:(redis学习)