• Redis数据类型


    数据存储类型介绍

    String
    Hash
    List
    Set
    Sorted_set

    数据类型实践案例

     

    数据类型的介绍:

      业务数据的特殊性

      作为缓存使用

        1.原始业务功能设计

          秒杀

          618活动

          购票

        2.运营平台监控带的突发高频访问数据

          突发时政要闻,被强势关注围观

        3.高频、复杂的统计数据

          在线人数

          投票排行榜

        附加功能

        系统功能优化或升级

          单服务器升级集群

          Session管理

          Token管理

     

     

    Redis 数据类型

    String  hash  list  set  sorted_set

    String

      Redis自身是一个Map,其中所有的数据都采用key:value的形式存储。

      数据类型指的是存储的数据类型,也就是Value部分,Key 永远是字符串。

      存储内容:通常使用字符串,如果字符串以证书的形式展示,可以作为数字使用。

      添加数据: set  key  values

      获取数据: get  key

      删除数据:   del  key

      添加/修改多个数据 mset key1 value1 key2 value2 .....

      获取多个数据  mget key1 key2 ...    m:mutipul对个

      获取字符串个数 strlen key

      最加信息到原始信息后部(如果原始信息存在就追加,否则新建)append key value

      单指令操作和多指令选择:指令执行步骤发送,执行,返回。

    String类型数据的扩展操作。

      

     

    1.业务场景

      大型企业级应用中,分表操作是基本操作,使用多张表存储同类型的数据,但是对应的主键id必须保证统一性,不重复。Oracle数据库具有sequence设定,可以解决问题,但是MySQL数据库并不具有类似的机制,那如何解决?

      解决方案

      设置数值数据增加制定范围的值

        incr key

        incrby key icrement

        incrbyfloat key increment

      设置数值数据减少制定范围的值

        decr key

        decrby key increment

    Stirng 作为数值操作

      String在redis内部存储默认是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算。

      Redis所有的操作都具有原子性,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响。

      注意:按数值进行操作的数据,如果原始数据不能转换成数值,或超越了redis数值的上限范围,就会报错。

    Tip1:

    Redis用于控制数据库表住建ID,为数据库表主键提供生成策略,保障数据库表的主键唯一性。(用于帮助其他数据库  num相当于自加或自减)

    此方案适用于所有数据库,且支持数据库集群。

    2.业务场景

      投票(在某一时间段内只能投一次票)

      Id = 倒计时(超过时效后删除id)

      解决方案:

      设置于数据制定有效的生命周期

      setex key seconds value

      psetex key milliseconds value  (其中key 为 id)

      Tips2:

      redis控制数据的生命周期,通过数据是否试下控制业务行为,适用于所有的具有时效限定的操作。

     

     

     

     

     

     

     

     

  • 相关阅读:
    memcached学习笔记——存储命令源码分析上篇
    个人理解正则表达式——懒惰匹配
    Symfony2中的设计模式——装饰者模式
    Symfony2源码分析——启动过程2
    Symfony2 HttpKernel事件驱动
    memcached学习笔记——连接模型
    阅读优秀代码是提高开发人员修为的一种捷径
    Linux下部署Symfony2对app/cache和app/logs目录的权限设置
    Symfony2源码分析——启动过程1
    Symfony2 EventDispatcher组件
  • 原文地址:https://www.cnblogs.com/qj696/p/16372092.html
Copyright © 2020-2023  润新知