redis数据类型

文章目录


五种数据类型

1 字符串
1.1 获取并设置值
getset name zhangsan

在这里插入图片描述

1.2 incr 增加一

假如没有定义 则默认0

假如非数值类型 则报错

127.0.0.1:6379> incr n

(integer) 1

127.0.0.1:6379> get n

“1”

127.0.0.1:6379> set nn 2

OK

127.0.0.1:6379> incr nn

(integer) 3

127.0.0.1:6379> get nn

“3”
在这里插入图片描述

1.3 减一 decr

假如没有定义 则默认0

127.0.0.1:6379> decr nn

(integer) 2

127.0.0.1:6379> decr n3

(integer) -1

1.4 incrby 指定增量值

127.0.0.1:6379> incrby n3 8

(integer) 7
从-1 增加8得到7

1.5 decrby 指定减量值

127.0.0.1:6379> decrby n3 5

(integer) 2

1.6 append 追加字符串

假如没定义 直接赋值

127.0.0.1:6379> append s1 jj

(integer) 2

127.0.0.1:6379> get s1

“jj”

127.0.0.1:6379> append s1 bb

(integer) 4

127.0.0.1:6379> get s1

“jjbb”

2 哈希

存储Hash

String key和String Value的Map容器

每一个Hash可以存储4294967295个键值对

2.1 设置值

hset h1 username zhangsan
hset h1 password 11111
获取值 hget h1 username

2.2 hmset 多个字段一起设置

127.0.0.1:6379> hmset h2 username open1111 password 23456
获取单个 hget h2 password
在这里插入图片描述

2.3 获取全部 hgetall h2

在这里插入图片描述
删除一个或多个 hdel h2 username password

2.4 hincrby增加数字

127.0.0.1:6379> hset h1 age 20

(integer) 1

127.0.0.1:6379> hincrby h1 age 5

(integer) 25

2.5 hexists判断字段是否存在 1表示存在 0表示不存在

127.0.0.1:6379> hexists h1 age

(integer) 1

127.0.0.1:6379> hexists h1 age2

(integer) 0

2.6 hlen获取hash属性个数

127.0.0.1:6379> hlen h1

(integer) 3

127.0.0.1:6379> hlen h2

(integer) 0

2.7 hkeys获取所有属性名称

127.0.0.1:6379> hkeys h1

  1. “username”

  2. “password”

  3. “age”

127.0.0.1:6379> hkeys h2

(empty list or set)

2.8 hvals获取所有属性值

127.0.0.1:6379> hvals h1

  1. “java1234”

  2. “123456”

  3. “25”

3 存储list

ArrayList使用数组方式

LinkedList使用双向链接方式

双向链接表中增加数据

双向链接表中删除数据

3.1 lpush 方式添加

从左边开始添加

127.0.0.1:6379> lpush l1 a b c d

(integer) 4

127.0.0.1:6379> lpush l1 1 2 3 4

(integer) 8

lrange 获取指定方位的集合元素

从第1个开始 到倒数第一个 也就是最后一个 也就是 所有数据

127.0.0.1:6379> lrange l1 0 -1

  1. “4”

  2. “3”

  3. “2”

  4. “1”

  5. “d”

  6. “c”

  7. “b”

  8. “a”

获取从第1个到第6个集合元素

127.0.0.1:6379> lrange l1 0 6

  1. “4”

  2. “3”

  3. “2”

  4. “1”

  5. “d”

  6. “c”

  7. “b”

3.2 rpush 从右端开始添加

127.0.0.1:6379> rpush l2 a b c d

(integer) 4

127.0.0.1:6379> rpush l2 1 2 3 4

(integer) 8

127.0.0.1:6379> lrange l2 0 -1

  1. “a”

  2. “b”

  3. “c”

  4. “d”

  5. “1”

  6. “2”

  7. “3”

  8. “4”

127.0.0.1:6379> lrange l2 0 6

  1. “a”

  2. “b”

  3. “c”

  4. “d”

  5. “1”

  6. “2”

  7. “3”

lpop 左侧弹出集合元素

3.3rpop 右侧弹出集合元素 删除右侧1个元素后所得到的集合

127.0.0.1:6379> lrange l2 0 -1

  1. “b”

  2. “c”

  3. “d”

  4. “1”

  5. “2”

  6. “3”

  7. “4”

127.0.0.1:6379> rpop l2

“4”

127.0.0.1:6379> lrange l2 0 -1

  1. “b”

  2. “c”

  3. “d”

  4. “1”

  5. “2”

  6. “3”

3.4 llen查看元素个数

127.0.0.1:6379> llen l2

(integer) 6

3.5 lpushx 集合头部插入元素

127.0.0.1:6379> lpushx l2 xx

(integer) 7

127.0.0.1:6379> lrange l2 0 -1

  1. “xx”

  2. “b”

  3. “c”

  4. “d”

  5. “1”

  6. “2”

  7. “3”

3.6 rpushx 集合尾部插入元素

127.0.0.1:6379> rpushx l2 yy

(integer) 8

127.0.0.1:6379> lrange l2 0 -1

  1. “xx”

  2. “b”

  3. “c”

  4. “d”

  5. “1”

  6. “2”

  7. “3”

  8. “yy”

3.7 lpush集合头部插入多个元素

127.0.0.1:6379> lpush l2 a1 a2

(integer) 10

127.0.0.1:6379> lrange l2 0 -1

  1. “a2”

  2. “a1”

  3. “xx”

  4. “b”

  5. “c”

  6. “d”

  7. “1”

  8. “2”

  9. “3”

  10. “yy”

127.0.0.1:6379> rpush l2 a3 a4

(integer) 12

127.0.0.1:6379> lrange l2 0 -1

  1. “a2”

  2. “a1”

  3. “xx”

  4. “b”

  5. “c”

  6. “d”

  7. “1”

  8. “2”

  9. “3”

  10. “yy”

  11. “a3”

  12. “a4”

3.8 lrem 从指定方向删除指定个数的指定元素

先加点数据搞个新集合l3

127.0.0.1:6379> lpush l3 1 3 2 3 2 1 2 1 3

(integer) 9

127.0.0.1:6379> lrange l3 0 -1

  1. “3”

  2. “1”

  3. “2”

  4. “1”

  5. “2”

  6. “3”

  7. “2”

  8. “3”

  9. “1”

从左边开始删除2个1

127.0.0.1:6379> lrem l3 2 1

(integer) 2

127.0.0.1:6379> lrange l3 0 -1

  1. “3”

  2. “2”

  3. “2”

  4. “3”

  5. “2”

  6. “3”

  7. “1”

从右边开始删除2个3

127.0.0.1:6379> lrem l3 -2 3

(integer) 2

127.0.0.1:6379> lrange l3 0 -1

  1. “3”

  2. “2”

  3. “2”

  4. “2”

  5. “1”

删除所有2

127.0.0.1:6379> lrem l3 0 2

(integer) 3

127.0.0.1:6379> lrange l3 0 -1

  1. “3”

  2. “1”

3.9 lset 设置集合指定索引的值

127.0.0.1:6379> lrange l1 0 -1

  1. “4”

  2. “3”

  3. “2”

  4. “1”

  5. “d”

  6. “c”

  7. “b”

  8. “a”

索引从0开始

127.0.0.1:6379> lset l1 3 xxxx

OK

127.0.0.1:6379> lrange l1 0 -1

  1. “4”

  2. “3”

  3. “2”

  4. “xxxx”

  5. “d”

  6. “c”

  7. “b”

  8. “a”

3.10 linsert 在集合里插入指定元素

在xxxx元素之前插入aa

127.0.0.1:6379> linsert l1 before xxxx aa

(integer) 9

127.0.0.1:6379> lrange l1 0 -1

  1. “4”

  2. “3”

  3. “2”

  4. “aa”

  5. “xxxx”

  6. “d”

  7. “c”

  8. “b”

  9. “a”

在xxxx元素之后插入bb

127.0.0.1:6379> linsert l1 after xxxx bb

(integer) 10

127.0.0.1:6379> lrange l1 0 -1

  1. “4”

  2. “3”

  3. “2”

  4. “aa”

  5. “xxxx”

  6. “bb”

  7. “d”

  8. “c”

  9. “b”

  10. “a”

3.11 rpoplpush 把A集合尾部元素弹出并插入到B集合头部

127.0.0.1:6379> rpush l4 a b c

(integer) 3

127.0.0.1:6379> rpush l5 1 2 3

(integer) 3

127.0.0.1:6379> lrange l4 0 -1

  1. “a”

  2. “b”

  3. “c”

127.0.0.1:6379> lrange l5 0 -1

  1. “1”

  2. “2”

  3. “3”

127.0.0.1:6379> rpoplpush l4 l5

“c”

127.0.0.1:6379> lrange l4 0 -1

  1. “a”

  2. “b”

127.0.0.1:6379> lrange l5 0 -1

  1. “c”

  2. “1”

  3. “2”

  4. “3”

4 set
4.1 添加set元素和获取set元素

在这里插入图片描述
继续添加元素 若重复元素不再添加
在这里插入图片描述

4.2 删除元素

删除两个元素
在这里插入图片描述

4.3 判断某个元素是否存在 返回1 表示存在 返回0表示不存在

在这里插入图片描述

4.4 sdiff计算差集

在这里插入图片描述
可以看出 集合的顺序不同 结果不一样

4.5 sinter计算交集

在这里插入图片描述

4.6 sunion计算并集

在这里插入图片描述

4.6 scard计算元素总数

在这里插入图片描述

4.7 srandmember 随机取一个元素

在这里插入图片描述

4.8 sdiffstore 把差集结果存储到新集合中

在这里插入图片描述

4.9 sinterstore 把交集结果存储到新集合中

在这里插入图片描述

4.10 sunionstore把并集结果存储到新集合中

在这里插入图片描述

5 存储Sorted-Set
5.1 添加元素默认从小到大排

在这里插入图片描述
zrange是查找元素 -1代表是最后一个

继续添加元素,这里分两种情况

假如次元素集合里面已经有了,则覆盖

127.0.0.1:6379> zadd sort1 7 b
(integer) 0
通过zscore 获取

127.0.0.1:6379> zscore sort1 b

“7”

发现已经修改了;

127.0.0.1:6379> zrange sort1 0 -1

  1. “a”

  2. “c”

  3. “b”

假如添加的元素不在集合里,则添加进去
127.0.0.1:6379> zadd sort1 9 d
(integer) 1
127.0.0.1:6379> zrange sort1 0 -1

  1. “a”
  2. “c”
  3. “b”
  4. “d”
5.3 删除元素zrem

127.0.0.1:6379> zrem sort1 b

(integer) 1

127.0.0.1:6379> zrange sort1 0 -1

  1. “a”

  2. “c”

  3. “d”

5.4 zcard 查看集合里的元素个数

127.0.0.1:6379> zcard sort1
(integer) 3
withscores 把序号也显示出来
127.0.0.1:6379> zrange sort1 0 -1 withscores

  1. “a”

  2. “5”

  3. “c”

  4. “6”

  5. “d”

  6. “9”

5.5 zrevrange 降序排列

127.0.0.1:6379> zrevrange sort1 0 -1 withscores

  1. “d”

  2. “9”

  3. “c”

  4. “6”

  5. “a”

  6. “5”

我们再加两个元素
127.0.0.1:6379> zadd sort1 10 e 5 f
(integer) 2

5.6 remrangebyrank 根据排名来删除元素 删除3个

127.0.0.1:6379> zremrangebyrank sort1 0 2

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

  1. “d”

  2. “9”

  3. “e”

  4. “10”

再添加元素

127.0.0.1:6379> zadd sort1 11 f 16 g 18 h

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

  1. “d”

  2. “9”

  3. “e”

  4. “10”

  5. “f”

  6. “11”

  7. “g”

  8. “16”

  9. “h”

  10. “18”

5.7 zremrangebyscore 根据具体序号范围来删除元素

127.0.0.1:6379> zremrangebyscore sort1 10 16

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

  1. “d”

  2. “9”

  3. “h”

  4. “18”

再添加元素

127.0.0.1:6379> zadd sort1 20 i 23 j 30 k

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

  1. “d”

  2. “9”

  3. “h”

  4. “18”

  5. “i”

  6. “20”

  7. “j”

  8. “23”

  9. “k”

  10. “30”

5.8 zrangebyscore 根据序号范围来查找元素

127.0.0.1:6379> zrangebyscore sort1 18 23 withscores

  1. “h”

  2. “18”

  3. “i”

  4. “20”

  5. “j”

  6. “23”

5.9 limit 限定查找起始 类似分页

127.0.0.1:6379> zrangebyscore sort1 18 23 withscores limit 0 2

  1. “h”

  2. “18”

  3. “i”

  4. “20”

5.10 zincrby 给指定元素加分

127.0.0.1:6379> zincrby sort1 5 h

“23”

127.0.0.1:6379> zrange sort1 0 -1 withscores

  1. “d”

  2. “9”

  3. “i”

  4. “20”

  5. “h”

  6. “23”

  7. “j”

  8. “23”

  9. “k”

  10. “30”

zincrby 给指定元素序号

127.0.0.1:6379> zincrby sort1 5 h

“23”

127.0.0.1:6379> zrange sort1 0 -1 withscores

  1. “d”

  2. “9”

  3. “i”

  4. “20”

  5. “h”

  6. “23”

  7. “j”

  8. “23”

  9. “k”

  10. “30”

5.11 zcount 查找指定序号范围的元素个数

127.0.0.1:6379> zcount sort1 20 23

(integer) 3

Sorted-Set使用场景:

大型在线游戏积分排行榜
构建索引数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值