详解Redis中key的命名规范和值的命名规范

数据库中得热点数据key命名惯例

表名:主键名:主键值:字段名
例如 user:id:0001:name
例如 user:id:0002:name
例如 order:id:s2002:price

上面的key对应的值则可以是

存放的方式 key value 优点
单独的key:value形式 order:id:s2002:price 2000 方便简单的操作,例如incr自增或自减
json格式 user:id:0001 {id:0001,name:"张三"} 方便一次性存和取数据,但是不方便更新数据

redis 缓存 key常量命名规则示例

package com.awj.mall.restfulapi.common.consts;

public class CacheConsts {

  // 短信验证码类型
  /**
   * 登录
   */
  public static final String SMS_TYPE_LOGIN = "cache:api:sms_login_";
  /**
   * 重置密码
   */
  public static final String SMS_TYPE_RESETPWD = "cache:api:sms_resetpwd_";
  /**
   * 重置手机号
   */
  public static final String SMS_TYPE_RESETPHONE = "cache:api:sms_resetphone_";
  /**
   * 注册
   */
  public static final String SMS_TYPE_REG = "cache:api:sms_reg_";
  /**
   * 工单报备报备人校验
   */
  public static final String SMS_TYPE_PROJECT = "cache:api:sms_project_";

  /**
   * 服务商申请
   */
  public static final String SMS_TYPE_SERVICE = "cache:api:sms_service_";
  /**
   * 绑定账户
   */
  public static final String SMS_TYPE_BIND_PAYACCOUNT = "cache:api:sms_bing_payaccount_";
  /**
   * 服务商接单后核销码短信消息(消费者)
   */
  public static final String SMS_TYPE_SERVICE_HX = "cache:api:sms_service_hx_";

  /**
   * 重置密码_token
   */
  public static final String SMS_TYPE_RESETPWD_TOKEN = "cache:api:sms_resetpwd:token_";
  /**
   * 重置密码_手机号
   */
  public static final String SMS_TYPE_RESETPHONE_TOKEN = "cache:api:sms_resetphone:token_";

  //省市区商圈缓存
  /**
   * 所有省市区
   */
  public static final String SYS_CITY_LIST = "cache:api:city_list";
  /**
   * 已开通区域包含商圈信息
   */
  public static final String SYS_CITY_ESC_LIST = "cache:api:city_esc_list";
  /**
   * 所有已开通商圈
   */
  public static final String SYS_ESC_LIST = "cache:api:esc_list";

  public static final Integer SYS_CITY_LIST_EXPIRE_TIME_SECONDS = 60 * 60 * 24 * 15;

  /**
   * 验证码过期时间:5分钟
   */
  public static final Integer CHECKCODE_EXPIRE_TIME_SECONDS = 5 * 60 * 1000;

  /**
   * 验证码在redis中的存储时间:30分钟
   */
  public static final Integer CHECKCODE_EXPIRE_TIME_SAVE_SECONDS = 30 * 60 * 1000;

  /**
   * 广告类图片
   */
  public static final String CACHE_IMAGE_RES_ADV = "cache:image_dir:" + SysConsts.IMAGE_RES_ADV;
  /**
   * 体验服务中心相关图片
   */
  public static final String CACHE_IMAGE_RES_ESC = "cache:image_dir:" + SysConsts.IMAGE_RES_ESC;
  /**
   * 品牌店铺相关图片
   */
  public static final String CACHE_IMAGE_RES_SHOP = "cache:image_dir:" + SysConsts.IMAGE_RES_SHOP;
  /**
   * 产品相关图片
   */
  public static final String CACHE_IMAGE_RES_PRODUCT = "cache:image_dir:" + SysConsts.IMAGE_RES_PRODUCT;
  /**
   * 其他图标/logo相关图片
   */
  public static final String CACHE_IMAGE_RES_ICON = "cache:image_dir:" + SysConsts.IMAGE_RES_ICON;
  /**
   * 程序使用静态文件资源
   */
  public static final String CACHE_IMAGE_RES_STATIC = "cache:image_dir:" + SysConsts.IMAGE_RES_STATIC;

  /**
   * 商品分类保存
   */
  public static final String CACHE_GOODS_CATE = "cache:goodscate";
  /**
   * 商品分类保存过期时间
   */
  public static final Integer CACHE_GOODS_CATE_EXPIRE_TIME = 60 * 10;

  /**
   * 品牌保存
   */
  public static final String CACHE_GOODS_BRAND = "cache:goodsbrand";

  /**
   * 平台品牌保存
   */
  public static final String CACHE_GOODS_BRAND_PLATFORM = "cache:goodsbrand:platform";

  /**
   * 商家品牌保存
   */
  public static final String CACHE_GOODS_BRAND_SHOP = "cache:goodsbrand:shop";

  /**
   * 品牌保存过期时间
   */
  public static final Integer CACHE_GOODS_BRAND_EXPIRE_TIME = 10 * 60;

  public static final String CACHE_P_USERINFO = "cache:piduserinfo";

  public static final String CACHE_ORDER_UN_PAY = "cache:order:unpay";
  public static final Long CACHE_ORDER_UN_PAY_EXPIRE_TIME = 24 * 60 * 60 * 1000L;

  public static final String CACHE_ORDER_COMMIT = "cache:commit:order:userid_";
  public static final Long CACHE_ORDER_COMMIT_EXPIRE_TIME = 3 * CACHE_ORDER_UN_PAY_EXPIRE_TIME;

  public static final String CACHE_WORKBENCH_UPDATE_MAX_INTEGRATL = "cache:workbeanch:updatemaxintegratl:userid_";

  public static final Long CACHE_SERVICE_EXPIRE_TIME = 30 * 24 * 60 * 60 * 1000L ;

  public static final Integer CACHE_P_USERINFO_EXPIRE_TIME = 30 * 60;

  public static final String CACHE_RANDOM_CATE_LIST = "cache:random_cate:list";

  public static final String CACHE_TAKE_ORDER = "cache:take_order:shop_";

  public static final String CACHE_SHOP_GOODS_PLUS_VOLUME = "cache:shop_goods:plusVolume";

  public static final String CACHE_SHOP_INFO_PLUS_VOLUME = "cache:shop_info:plusVolume";

  public static final String CACHE_SYS_TEMPLATE_CACHE = "cache:sms_template:";

  public static final String CACHE_TOKEN = "cache:token:";

  public static final String CACHE_SHOP_IMMEDIATELY_COMMIT = "cache:shop:immediately:commit:userid_";

  public static final Long CACHE_SHOP_IMMEDIATELY_COMMIT_EXPIRE_TIME = 10000L;

}

到此这篇关于详解Redis中key的命名规范和值的命名规范的文章就介绍到这了,更多相关Redis key命名规范内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • redis集群规范详解

    本文档翻译自 http://redis.io/topics/cluster-spec . 引言 这个文档是正在开发中的 Redis 集群功能的规范(specification)文档, 文档分为两个部分: 第一部分介绍目前已经在 unstable 分支中实现了的那些功能. 第二部分介绍目前仍未实现的那些功能. 文档各个部分的内容可能会随着集群功能的设计修改而发生改变, 其中, 未实现功能发生修改的几率比已实现功能发生修改的几率要高. 这个规范包含了编写客户端库(client library)所需的

  • 详解Redis中key的命名规范和值的命名规范

    数据库中得热点数据key命名惯例 表名:主键名:主键值:字段名 例如 user:id:0001:name 例如 user:id:0002:name 例如 order:id:s2002:price 上面的key对应的值则可以是 存放的方式 key value 优点 单独的key:value形式 order:id:s2002:price 2000 方便简单的操作,例如incr自增或自减 json格式 user:id:0001 {id:0001,name:"张三"} 方便一次性存和取数据,但

  • 详解redis中的锁以及使用场景

    分布式锁 什么是分布式锁? 分布式锁是控制分布式系统之间同步访问共享资源的一种方式. 为什么要使用分布式锁? ​ 为了保证共享资源的数据一致性. 什么场景下使用分布式锁? ​ 数据重要且要保证一致性 如何实现分布式锁? 主要介绍使用redis来实现分布式锁 redis事务 redis事务介绍: ​ 1.redis事务可以一次执行多个命令,本质是一组命令的集合. ​ 2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入 ​ **作用:**一个队列中,一次性.顺序性.排他性的执

  • 详解Redis中的List类型

    本系列将和大家分享Redis分布式缓存,本章主要简单介绍下Redis中的List类型,以及如何使用Redis解决博客数据分页.生产者消费者模型和发布订阅等问题. Redis List的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis内部的很多实现,包括发送缓冲队列等也都是用这个数据结构. List类型主要用于队列和栈,先进先出,后进先出等. 存储形式:key--LinkList<value> 首先先给大家Show一波Redis中与List类型相

  • 详解React中key的作用

    要了解React中key的作用,可以从key的取值入手,key的取值可以分为三种,不定值.索引值.确定且唯一值 在下面的代码中,key的取值是不定值(Math.random()) 问题: 点击按钮的时候,span的颜色会变成红色吗? import React, { useState } from 'react'; function App() { const [initMap, setInitMap] = useState([1,2,3,4]); const handleClick = () =

  • 一文详解Redis中的持久化

    目录 1. 前言 2. RDB 2.1 手动触发 2.2 自动触发 3. bgsave大致流程 4. RDB持久化方式的优缺点 5. AOF 6. AOF的使用方式 7. AOF流程剖析 7.1 命令写入 7.2 文件同步 7.3 重写机制 7.4 重启加载 8. 问题定位与优化 8.1 关于fork操作 8.2 关于子进程开销 8.3 关于AOF追加阻塞 1. 前言 为什么要进行持久化?:持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复. 持久

  • 详解Redis中Lua脚本的应用和实践

    引言 前段时间组内有个投票的产品,上线前考虑欠缺,导致被刷票严重.后来,通过研究,发现可以通过 redis lua 脚本实现限流,这里将 redis lua 脚本相关的知识分享出来,讲的不到位的地方还望斧正. redis lua 脚本相关命令 这一小节的内容是基本命令,可粗略阅读后跳过,等使用的时候再回来查询 redis 自 2.6.0 加入了 lua 脚本相关的命令,EVAL.EVALSHA.SCRIPT EXISTS.SCRIPT FLUSH.SCRIPT KILL.SCRIPT LOAD,

  • 详解Redis中的双链表结构

    Redis中双链表实现的基本结构: 1.节点结构 typedef struct listNode { struct listNode *prev; //前向节点 struct listNode *next; //后向节点 void *value; //该节点的值 } listNode; 2.双向链表结构 typedef struct list { listNode *head; //头节点 listNode *tail; //尾节点 void *(*dup)(void *ptr); //复制函数

  • 详解C#中使用对象或集合的初始值设定项初始化的操作

    使用对象初始值设定项初始化对象 可以使用对象初始值设定项以声明方式初始化类型对象,而无需显式调用类型的构造函数. 下面的示例演示如何将对象初始值设定项用于命名对象.编译器通过先访问默认实例构造函数然后处理成员初始化处理对象初始值设定项.因此,如果默认构造函数在类中声明为 private,那么需要公共访问权的对象初始值设定项将失败. 下面的示例演示如何使用对象初始值设定项初始化新的 StudentName 类型. public class Program { public static void

  • 详解JavaScript中的变量命名规范

    目录 驼峰命名 根据变量类型来命名 普通变量/属性 布尔变量/属性 普通函数/方法 回调.钩子函数 类 注意一致性 介词一致性 顺序一致性 表里一致性 时间一致性 其他注意事项 避免使用不常用的缩写 避免使用容易混淆的字母和数字 避免变量命名过于抽象 驼峰命名 首先,和其他语言一样,大部分变量建议采用驼峰命名法. var articleTitle = 'javascript变量命名规范' 而对于常量,使用大写字母和下划线来组合命名. const COUNTRY_NAME = 'China' 根据

  • 详解springboot中各个版本的redis配置问题

    今天在springboot中使用数据库,springboot版本为2.0.2.RELEASE,通过pom引入jar包,配置文件application.properties中的redis配置文件报错,提示例如deprecated configuration property 'spring.redis.pool.max-active',猜想应该是版本不对,发现springboot在1.4前后集成redis发生了一些变化.下面截图看下. 一.不同版本RedisProperties的区别 这是spri

随机推荐