redis基础之--string && list(四)

1、redis场景数据类型

1.1、字符串(string):

字符串是所有编程语言中最常见的科最常用的数据类型,而且也是redis最基本的数据类型之一,而且redis中所有的key的类型都是字符串。

1.1.1、set 设置key值
# 设置一个key为name,value为“zhangsan”,设置自动过期时间为10s,10s后过期,单位是秒
127.0.0.1:6379[1]> set name zhangsan ex 10
OK
127.0.0.1:6379[1]> keys *
1) "name"

# 10s后查看,发现key已经不存在了
127.0.0.1:6379[1]> keys *
(empty list or set)

过期时间场景:例如公司搞活动,在APP中的优惠券,满多少元减多少钱,过期时间是3天。

1.1.2、get 查询key值
# 设置key值
127.0.0.1:6379[1]> set hongbao 300 ex 3600
OK
# 查询红包的value值
127.0.0.1:6379[1]> get hongbao
"300"
127.0.0.1:6379[1]>

设置几个测试值

127.0.0.1:6379[1]> set key1 1
OK
127.0.0.1:6379[1]> set key2 2
OK
127.0.0.1:6379[1]> set name zhangsan
OK
127.0.0.1:6379[1]> keys *
1) "name"
2) "hongbao"
3) "key2"
4) "key1"

注意: 生产环境不建议使用keys *查数key的名称,因为可以能key的数量太多,查询的时候特别耗性能(内存和IO等),容易导致不确定的问题出现。

1.1.3、del删除key
# 删除key红包,注意删除成功一个,(integer) 就是1,删除多个就会显示多个的数值,如果删除的数据没有就显示0	
127.0.0.1:6379[1]> del hongbao
(integer) 1	

# 删除多个key
127.0.0.1:6379[1]> del key1 key2
(integer) 2

127.0.0.1:6379[1]> keys *
1) "name"

# 删除不存在的key
127.0.0.1:6379[1]> del age
(integer) 0
1.1.4、mset 一次性设置多个key
# 通过mset设置多个key
127.0.0.1:6379[1]> mset name zhangsan age 20
OK
127.0.0.1:6379[1]> get name
"zhangsan"
127.0.0.1:6379[1]> get age
"20"
1.1.5、mget获取多个key的value值
# 通过mget获取多个value值
127.0.0.1:6379[1]> mget name age
1) "zhangsan"
2) "20"
1.1.6、append追加key值
# 查看name值
127.0.0.1:6379[1]> get name
"zhangsan"

# 在name值后边追加12,这边(integer) 中为什么是10,因为追加完总共是10个字符串
127.0.0.1:6379[1]> append name 12
(integer) 10

# 查看追加之后的key值
127.0.0.1:6379[1]> get name
"zhangsan12"

# 全部修改name的值
127.0.0.1:6379[1]> set name lisi
OK
127.0.0.1:6379[1]> get name
"lisi"
1.1.7、incr 递增

场景:例如你在微信朋友圈发了一条说说,有几个朋友给你点赞,这个点赞数(在不去取消点赞的情况下)就是递增

# 设置一个num值
127.0.0.1:6379[1]> set num 0
OK
127.0.0.1:6379[1]> get num
"0"

# 递增,第一次点赞
127.0.0.1:6379[1]> incr num
(integer) 1
127.0.0.1:6379[1]> get num
"1"

# 第二次点赞
127.0.0.1:6379[1]> incr num
(integer) 2
127.0.0.1:6379[1]> get num
"2"
1.1.8、decr 递减

场景:如果有朋友发现点错了赞,或者不想给你点赞了,就取消了点赞

# 当前点赞数是2
127.0.0.1:6379[1]> get num
"2"

# 一位朋友取消了点赞
127.0.0.1:6379[1]> decr num
(integer) 1
127.0.0.1:6379[1]> get num
"1"
1.1.9、strlen 查看value值的长度
# 设置一个key
127.0.0.1:6379[1]> set name zhangsan
OK

# 查看key的长度
127.0.0.1:6379[1]> strlen name
(integer) 8

注意: strlen只能查看string类型的长度,llen查看list类型的长度,这个后边会介绍!

1.1.10、exists 判断key是否存在
# 判断name是否存在,存在返回1,不存在返回0,判断多个的话有几个就返回几
127.0.0.1:6379[1]> keys *
1) "name"
2) "num"
3) "age"
127.0.0.1:6379[1]> exists name
(integer) 1
127.0.0.1:6379[1]> exists key1
(integer) 0
127.0.0.1:6379[1]> EXISTS name sex age		# 由于sex不存在,name和age存在,所以只返回2
(integer) 2

exists同样可以判断list是否存在!

1.1.11、ttl 查看过期时间

-1:是永不过期

-2:不存在的key

单位:秒

# 设置一个红包,值是200,过期时间是一天(86400秒)
127.0.0.1:6379[1]> set hongbao 200 ex 86400
OK
127.0.0.1:6379[1]> ttl hongbao
(integer) 86394
127.0.0.1:6379[1]> ttl hongbao
(integer) 86393

注意: 如果设置过key之后相对value值进行调整,例如把200调整成300,此时修改完之后key值是不会继承有效时间的,时间会变成永不过期!一定要注意!!!

127.0.0.1:6379[1]> set hongbao 300
OK
127.0.0.1:6379[1]> ttl hongbao
(integer) -1

使用append对value值进行追加 不会影响过期时间,注意追加后值会从三位变成4位,一定要注意不是加1

127.0.0.1:6379[1]> append hongbao 1
(integer) 4
127.0.0.1:6379[1]> ttl hongbao
(integer) 86363
127.0.0.1:6379[1]> get hongbao
"3001"
1.1.12、type 查看key的类型
127.0.0.1:6379[1]> type name
string

1.2、列表:

列表是一个双向可读写的管道,其头部是左侧尾部是右侧,一个列表最多可以包含2^32-1个元素即4294967295个元素

在这里插入图片描述

1.2.1、lpush 从左侧插入数据
# 从左侧插入数据
127.0.0.1:6379[1]> lpush list2 zhangsan lisi wangwu
(integer) 3
1.2.2、rpush 从右侧插入数据
# 从右侧插入数据
127.0.0.1:6379[1]> rpush list2 zhaoliu
(integer) 4

注意: lpush是从左往右增加数据,rpush是从右往左增加数据,尽量按照一个方向增加数据!一般是从左写入数据,从右取出数据,数据是先进先出!

1.2.3、rpop 从右侧取数据
# 从右取出第一个数据是zhaoliu,第二个数据是zhangsan
127.0.0.1:6379[1]> rpop list2
"zhaoliu"
127.0.0.1:6379[1]> rpop list2
"zhangsan"
127.0.0.1:6379[1]> rpop list2
"lisi"
127.0.0.1:6379[1]> rpop list2
"wangwu"

注意: 数据一旦取出就不在有了

1.2.4、lpop 从左侧取数据
127.0.0.1:6379[1]> lpush list2 zhangsan lisi wangwu
(integer) 3
127.0.0.1:6379[1]> lpop list2
"wangwu"
1.2.5、llen 查看列表的长度
127.0.0.1:6379[1]> llen list1
(integer) 3

这里边的3是列表里边的数据的个数

说明: 笔记是参考马哥视频整理出来的,如有侵权请联系删除!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值