redis系列学习笔记,数据类型String

卑微小吴励志写博客第19天。

前两天周末,也断更了两天,反思了一下自己现在的学习状态。总结为一句话:东一榔头西一棒子。有时候发现自己看的东西感觉很多,spring看一下,中间件看一下,数据库看一下。发现自己啥东西的学习都浮在表面,所以经过反思,觉得还是要找一个切入点,深入的去学习和掌握一些东西。一个个知识点逐个击破。可以从一个项目着手,也可以从一个知识点着手,这个要看个人喜欢。我觉得从redis开始,这段时间学习一下网上redis的系列课程。

String类型的基本操作

  • 设置单个数据
    set key value
  • 获取单个值
    get key
  • 删除单个值
    del key
  • 添加/修改多个数据
    mset key1 value1 key2 value2
  • 获取多个数据
    get key1 key2
  • 获取字符串长度
    strlen key(获取的是对应的value的长度)
  • 在原始key对应的value后面追加信息
    append key(对应的key有值就追加,没有就新建)

String类型的扩展操作

业务场景1:对于数据库分表的情况,要保持多张表存一样的数据,但是主键id不能重复。对于oracle来说,因为有序列sequence的存在,可以保证。mysql就无法保证,如何用redis来实现。

  • 设置数值的自增操作
    incr key(key对应的数值型value自增1)
    incrby key increment(自己定义每次增多少)
    incrbyfloat key increment(自定义增加小数)
  • 自减
    decr key
    decrby key increment
    注意:1、redis存储数字String的时候,如果存的是数值,会自动转为数值处理。
    2、redis的单线程操作的,原子性操作,所以不用担心并发带来的数据影响。
    3、数值最大可以存java数据类型中对应的long类型最大值。
    用处1:redis可以用作数据库主键生成策略,保证主键的唯一性。所有的数据库都适用,且支持数据库集群。

业务场景2
redis系列学习笔记,数据类型String
这三种都是保证数据的时效性。

  • 设置数据具有指定的生命周期
    setex key secends value
    psetex millisecends value(对应的毫秒)

业务场景3
redis系列学习笔记,数据类型String
这种数据在redis中怎样存储?怎样设置key?
例如:
user:id :645:fans ----> 12000200
user:id :645:blogs -----> 122
user:id :645:focus ---->54

也可以用json格式存储,定时刷新
eg:
user:id :645 —>{id:12000200,blogs:122,focus:54}

应用场景:redis用于高热度数据的访问加速。

数据库中的热点数据key命名惯例:
redis系列学习笔记,数据类型String
redis系列学习笔记,数据类型String

每天学习一点点,每天进步一点点。