栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

狂神redis笔记04

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

狂神redis笔记04

String字符串

90%的java程序员使用redis只会使用一个String类型!

 

 我们之前学过了最简单的set设置值和get取值

我们现在来学习一些新的命令:

可以给字符串进行追加操作。

 

 我们可以使用strlen去获取字符串的长度。

 

如果我们去append追加一个不存在的字符串,那就相当于是和set命令一样。

 我们同样可以做一个i++的操作:

 

我们的incr命令就可以用来自增。

我们在类似像微信里面的那种浏览量啊之类的,就可以用到我们的redis进行一个计数。

当然有了自增我们也可以做自减:

 

用decr命令进行递减。

我们在java中有个步长的概念,我们这里也可以使用这种一次+多个或者-多个的操作:

 

我们可以使用incrby和decrby做到按照步长自增或自减。

 字符串范围range:

我们先清空一下数据库:

截取字符串操作:

getrange

 

范围在0 -1我们可以查看到所有的字符串。

现在我们来做替换字符串操作:

setrange

 

 setex(set with expire) 设置过期时间

setnx(set if not exist) 不存在设置

我们可以给字符串设置存活时间。然后用ttl进行查看还剩多少存活时间。

 

 我们用setnx创建字符串之后。

当我们再去修改值时就修改不了了。

我们这个setnx命令在分布式锁中会常常使用的到。

我们现在来学习 mset和mget命令 一次性批次设置值和获取值

数据库先清一下。

我们这里的msetnx满足原子性,要不就都执行,要不就都不执行,因为已经存在k1不能执行,所以不存在的k4也不会执行。

我们这里也可以设置对象:

 set user:1{name:zhangsan,age:3} 值为json字符串来保存一个对象

但是这里我们也可以使用字符串进行操作:

这是一个key的巧妙应用。

我们这里还有组合命令:

getset 先get然后set

 

如果不存在值则返回新的值。如果存在值,先获取原来的值,再设置新的值。

 String类似的使用场景:value除了是我们的字符串还可以是我们的数字。

计数器,统计多单位的数量,粉丝数,对象缓存存储。

List

 在redis里面,我们可以把list玩成,栈,队列,阻塞队列!

所有的list命令都是以l开头的。

 

 

我们现在去做移除元素。

 

我们这里的lpop是移除第一个值,rpop是移除最后一个值。

我们可以使用lindex获取元素:

 

我们可以去获得list的长度:

 

我们 之前的移除是移除首尾,那现在如果我们想移除指定的值呢?

lrem

我们的list中是可以加入重复元素的。

 

trim 修剪 list截断!

 

组合命令:

rpoplpush移除列表的最后一个元素,并且添加一个新的元素:

 

修改元素的值:

 

 linsert 在一个值的前面或后面插入一个值:

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号