首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于redis key命名规范的设计

一、实现目标 简洁,高效,可维护 二、键值设计规约 1 、 Redis key命名风格 【推荐】Redis key命名需具有可读性以及可管理性,不该使用含义不清的key以及特别长的key名; 【强制】以英文字母开头...,命名中只能出现小写字母、数字、英文点号(.)和英文半角冒号(:); 【强制】不要包含特殊字符,如下划线、空格、换行、单双引号以及其他转义字符; 2 、命名规范 【强制】命名规范:业务模块名:业务逻辑含义...命名key所代表的value类型结尾,以提高可读性; 示例:user:basic.info:{userid}:string 3 、 value 设计 【强制】:拒绝bigkey(防止网卡流量、慢查询)...3、【强制】 关于过期时间 Redis key一定要设置过期时间。要跟自己的业务场景,需要对key设置合理的过期时间。...可以在写入key时,就要追加过期时间;也可以在需要写入另一个key时,删除上一个key

24.5K52
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    redis 清理某个key前缀的key

    redis清理某个前缀的key 例如,某次研发上线代码,造成了某种前缀的key出现了脏数据(例如key前缀名称为 key_  ), 我们需要快速的清理掉这些问题key。...常用的方法有2种: 1、dump出一个全量数据,然后找出符合条件的key,进行删除操作【推荐】 2、使用scan扫描redis,将全部key捞出来,然后再删除符合条件的key 我们这里使用第一种方法,具体如下操作...awk  -F ',' '{print $3 ,  $NF }'  memory.csv > keys.txt    # 过滤出key的名称和过期时间 egrep key_  keys.txt > .../root/key_.txt     # 将 key_ 前缀的key 过滤出来 cat /root/key_.txt | sort -k 2 -r > /root/sort_keys    # 对key...按照日期进行倒序排序 egrep 2019-09-10 /root/sort_keys  > /root/match_keys    # 注意:我这里紧急处理,只过滤出 2019-09-10 过期的key

    4.3K20

    热点Key

    此过程中会在某一主机Server上对相应的Key进行访问,当访问超过Server极限时,就会导致热点 Key 问题的产生。 热点Key的危害 流量集中,达到物理网卡上限。...备份热点Key:即将热点Key+随机数,随机分配至Redis其他节点中。这样访问热点key的时候就不会全部命中到一台机器上了。...大Key Redis使用过程中经常会有各种大key的情况, 比如单个简单的key存储的value很大。...根据这个场景发现,商品数据,在活动期间会有很大的访问量,这是一个热点Key。另外由于前期错误的设置导致了这个热点Key又是一个大Key。...所以我们的优化过程就是按照如果解决掉热点Key和大Key的这两个问题进行的。之前并没有上述的概念,都是摸着石头过河,渐渐地思路才清晰起来。 解决过程 第一版 直接按条件查询数据库。

    55910

    Redis大keykey拆分方案

    )拆分 背景 业务场景中经常会有各种大keykey的情况, 比如: 1: 单个简单的key存储的value很大 2: hash, set,zset,list 中存储过多的元素(以万为单位) 3...3:一个集群存储了上亿的key 如果key的个数过多会带来更多的内存空间占用, i:key本身的占用(每个key 都会有一个Category前缀) ii:集群模式中,服务端需要建立一些...slot2key的映射关系,这其中的指针占用在key多的情况下也是浪费巨大空间 这两个方面在key个数上亿的时候消耗内存十分明显(Redis 3.2及以下版本均存在这个问题,4.0有优化);...一: key 本身就有很强的相关性,比如多个key 代表一个对象,每个key是对象的一个属性,这种可直接按照特定对象的特征来设置一个新Key——Hash结构, 原先的key则作为这个新Hash 的field...= china; 即redis中存储的是一个key :user.zhangsan, 他有三个 field, 每个field + key 就对应原先的一个key

    9.1K91

    命名规则

    1.java类的命名规则 包名:包名是全小写的名词,中间可以由点分隔开,例如:java.awt.event; 类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class...HelloWorldApp; 接口名:命名规则与类名相同,例如interface Collection; 方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如...2.java包的命名规则 包的命名是小写字母,报的路径符合开发时候对系统模块的定义,比如实体类对实体类,服务层对应服务层,数据库访问层对应数据库访问,以便我们看了包名就明白是哪个模块,从而直接到对应的包找相应的实现...“com.公司名.项目名.模块名”,我们现在开发的项目为:com.tju.conference.XXX所以命名比较正规。...那么我们个人开发的时候命名规则是什么呢?

    1.3K10

    命名空间介绍之七:网络命名空间

    自从上次我们研究 Linux 命名空间以来已经有一段时间了。我们的系列缺少了一篇,现在补上:网络命名空间。...基本的网络命名空间管理 与其他命名空间一样,通过将 CLONE_NEWNET 标志传递给 clone() 系统调用可创建网络命名空间。...当 ip 工具创建网络命名空间时,它会在 /var/run/netns 下为其创建绑定挂载;这允许命名空间一直存在,即使没有进程在其中运行,还有助于操作命名空间自身。...可以使用以下命令删除网络命名空间: # ip netns delete netns1 此命令将删除引用了给定网络命名空间的绑定挂载。但是,只要有进程在命名空间内运行,该命名空间就一直存在。...如果不希望 root 用户执行网络命名空间中的此类操作,可以使用 PID 和挂载命名空间来使得其他网络命名空间无法访问。

    3.4K11

    驼峰命名转换_大驼峰命名

    以前没有写过项目时为了防止出错,数据库和实体类里的变量都统一设置一模一样 后来才知道规范的都是使用驼峰命名转换统一设置 例如:在xml里配置全局属性 Entity{createTime}数据库字段名有下划线而实体类没有下划线会自动转换--> 实体类单个属性的命名规范:单个单词全部小写,多个单词首字母小写...; private Integer priority; private Date createTime; private Date lastEditTime; 数据库单个属性的命名规范...:单个单词全部小写,多个单词之间用 下划线 _ 来连接 例: 数据库表名命名规范:以tb开头,多个单词之间用 下划线_ 来连接 例: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人

    1.2K10

    python的命名规则_python命名规则

    答:python命名规范在编写代码中起到很重要的作用,虽然不遵循命名规范,程序可能也可以运行,但是使用命名规范可以更加直观地了解代码所代表的含义。...命名规则首先说明一点,命名规则并不是强制的,这只是约定,你可以不遵守,也可以指定团队自己使用的命名规则,但最好团队所有的成员使用… 1.python命名规则—–>下划线连接 girl_of_wfb=lgl2...现已支持云服务器(cvm)、云硬盘(cbs)、私有网络(vpc)、云… 字典注:是python中唯一的一个映射类型创建:{key:value} #大括号创建字典的键时要加引号dict{key=value...} #括号里赋值方式,名字=对象,不要引号字典里的键和值用‘:’隔开,一对键和值组成一个项,项和项之间用‘,’隔开特点:键唯一,重复会被重新赋值无序key必须遵循python命名规则 添加和取值 cidt...=value #key… 使用它做个大点的项目一定要先规定好编程风格,不然能让人崩溃的。

    3.6K10

    Redis热点key及大key解决方案

    1 热点 key 问题 如果Key特别热,可能Redis也无法承受,毕竟所有的访问都集中打到了一台缓存服务器。...2 大Key 如果一个Key的Value特别大,那么可能会对Redis产生巨大的性能影响,因为Redis是单线程模型,对大Key进行查询或删除等操作,可能会引起Redis阻塞甚至是高可用切换。...应该如何查询Redis中的大Key,以及如何在设计上实现大Key的拆分呢?...如果key个数过多,会带来更多内存空间占用: key本身的占用 每个key 都会有一个Category前缀 集群模式中,服务端需要建立一些slot2key的映射关系 这其中的指针占用在key多的情况下也是浪费巨大空间...比如多个key 代表一个对象,每个key是对象的一个属性,这种可直接按照特定对象的特征来设置一个新Key——Hash结构, 原先的key则作为这个新Hash 的field。

    5K20

    命名空间介绍之三:PID 命名空间

    接着前两篇命名空间文章,现在看一下 PID 命名空间。与 PID 命名空间相关的全局资源就是进程 ID 数字空间。这意味着在不同 PID 命名空间中的进程可以有相同的进程 ID。...如之前所述,PID 命名空间构成了一个层次体系:一个进程仅仅能“看到”那些位于其自己 PID 命名空间和其子命名空间内的进程。...该模式可直接转换为 PID 命名空间模型。在 PID 命名空间内,/proc/PID 目录展示了关于位于当前 PID 命名空间或子命名空间的一些信息。...嵌套的 PID 命名空间 如前所述,在 PID 命名空间内,可能会看到位于同一命名空间的其他进程,也可以看到后代命名空间中的进程。...但在子 PID 命名空间中看不到位于父命名空间中的进程(或被祖先命名空间移除的进程)。 一个进程在从根命名空间开始的每层 PID 命名空间中都有一个 PID。

    3.4K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券