• 狂神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 在一个值的前面或后面插入一个值:

     

     

  • 相关阅读:
    GM8775C :是 DSI 转双通道 LVDS发送器
    公司来了个00后,起薪就是18K,不愧是卷王。。。
    将移位距离和假设外推到非二值化问题
    微服务下怎么做权限管理
    C++11之用户自定义字面量(ClassType operator““_C(param...))
    J3D在UOS+KIRIN崩溃1:直接原因分析
    本地部署Llama3-8B/70B 并进行逻辑推理测试
    【学习笔记73】设计模式
    C++ 多态和虚函数详解
    全志D1s开发板裸机开发之坏境搭建
  • 原文地址:https://blog.csdn.net/weixin_52618349/article/details/125889312