安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

这份Redis使用规范,拿走不谢

7月23日 辞凤阙投稿
  在公司项目中,redis属于高频使用,在使用中,我们遇到了各种各样的redis问题,于是针对自身情况梳理了一个redis使用规范。一、键名设计1、key名设计
  1。禁止包含特殊字符(比如空格、换行、单双引号以及其他转义字符)
  2。建议以业务名为前缀,以冒号分割来构造一定规则的key名(比如业务名:表名:id)
  比如:teach:leesonid:21
  3。控制key的长度
  key太长量一大起来就会非常占用内存2、value设计
  1。拒绝大key操作
  禁用超过10K的string大key(虽然redis支持512MB大小的string),如果1mb的key每秒重复写入10次,就会导致写入网络IO达10MB。
  错误示范:直接将laravel的整个模型或者对象当成value存储
  2。设计key时使用合适的数据类型(在资源利用和性能之间作平衡)
  错误示范:一个普通字符串弄成hash类型进行存储
  3。一定要控制key的生命周期
  错误示范:key设置为永不过期
  4。控制value长度
  比如string类型,如果value为8个字节的长整型则内部使用int类型,如果value为小于等于39个字节的字符串则内部使用embstr类型,如果value为大于39个字节的字符串则内部使用raw类型。这样能很好的利用redis的性能。
  5。数据按需存储
  不需要的数据千万不要存储在redis,只会浪费内存空间二、命令使用
  1。禁止使用keys、flushall、hmgetall等命令
  为防止业务研发的误操作,通常可以在交付redis实例之前将默认命令rename掉;而真正需要删除或者遍历key时可以使用scan家族命令
  2。慎用hgetall、lrange、smembers、zrange等命令
  除非业务场景需要,尽量不要使用这些命令。如果没有控制好会导致操作量过大,形成阻塞。三、缓存设计
  1。多个库的使用
  如果应用中会涉及到各种不同的redis数据存储,应该分库存储,最好是一种业务使用一个库
  比如:课程缓存:库1;订单队列:库2;日志处理:库3
  2。避免多个应用公用一个redis实例
  避免一个应用出现问题或者错误使用拖累其他应用
  3。合理评估业务场景,并设置最大内存以及内存淘汰策略(maxmemory和maxmemorypolicy)
  目前我们用的阿里云redis,不太存在这个问题
  4。使用带有连接池的数据库,可以有效控制连接,同时提高效率
  5。给redis设置一个密码
  目前我们用的阿里云redis,不太存在这个问题
  6。冷热数据区分
  虽然Redis支持持久化,但将所有数据存储在redis中,成本非常昂贵。
  建议将热数据(如QPS超过5k)的数据加载到redis中。
  低频数据可存储在Mysql、ElasticSearch中。
  7。缓存非特殊情况不做中间态redis大多数时候都是做缓存用,去掉后业务逻辑不应发生改变,万不可切入到业务里。缓存的高可用会影响业务;产生深耦合会发生无法预料的效果;会对维护产生负效果。四、场景实战问题1、项目redis使用问题
  当前的使用方式是,每个接入的应用要配置核心项目的redis配置。这样是不合理的,核心项目的redis应该只能在核心项目中使用,对外应该是提供api接口或者rpc进行访问。2、慎用laravel自带的cache功能
  laravel自带的cache功能最容易导致大key,经常由于简单使用至今将整个对象模型存储到redis,造成大key。3、注意key的过期时间设置
  在报名等高峰期的时候,key值设置过短容易造成缓存穿透,导致大量请求直接打到mysql数据库。4、小心缓存穿透
  经常使用会只给有数据的结果进行缓存,结果导致空数据无法缓存,相同查询直接每次都到达数据库,所以空值也应该被缓存。5、慎用缓存层层包裹
  缓存里面的数据还有一层缓存数据,会导致问题排查麻烦,出问题也不容易处理。6、慎用将redis做为消息队列
  如没有非常特殊的需求,严禁将Redis当作消息队列使用。redis当作消息队列使用,会有容量、网络、效率、功能方面的多种问题。
  如需要消息队列,可使用高吞吐的Kafka或者高可靠的RocketMQ,nsq,(花园同步有时间前后要求,且量不大才使用的)。五、查询使用问题1、线上Redis禁止使用Keys正则匹配操作
  redis是单线程处理,在线上Key数量较多时,操作效率极低【时间复杂度为O(N)】,该命令一旦执行会严重阻塞线上其它命令的正常请求,而且在高QPS情况下会直接造成redis服务崩溃!如果有类似需求,请使用scan命令代替。六、其他1、redis同步工具
  阿里云的redisshake工具,方便快速2、大key查询
  阿里云有大key分析工具
  来源:my。oschina。netkenblogblog3196207
投诉 评论

如何使用filter过滤器对入参进行处理(完整版)遇见的问题:前台把参数通过报文或者使用表单、ajax提交到后台,如果我们的请求参数是加密的,那么我们在controller里面的每一个方法里都需要进行解密处理。如果方法太……两三分钟一集,收费一元起!刷抖音快手也要付费了?这年头,刷个短视频都要付费了。近日,据界面新闻、潇湘晨报等多家媒体报道,有消息表示,抖音正在测试短剧付费功能。据了解,抖音短剧的付费模式与付费小说类似,是按集数进行付费,……这份Redis使用规范,拿走不谢在公司项目中,redis属于高频使用,在使用中,我们遇到了各种各样的redis问题,于是针对自身情况梳理了一个redis使用规范。一、键名设计1、key名设计1。禁止包含……明珠货运与极兔签署物流合作协议近日,明珠货运控股有限公司(YGMZ。US)(以下简称明珠货运)宣布与极兔国际物流有限公司(以下简称极兔物流)签署货物运输协议,双方就建立长期运输业务合作关系达成共识。根据协议……工业智能网关是做什么的及典型应用场景?工业智能网关叫什么?工业智能网关也叫工业物联网智能网关、无线数据采集网关、通讯采集网关,PLC无线网关,工业通讯网关,属于无线传感器网络产品。工业智能网关是一款具备挖掘工……今日区块链资讯1。2月3日消息,在经历多年对数字货币摇摆不定的立场之后,印度财政部长西塔拉曼当地时间2月1日表示,印度计划在今年4月份开始的2023财年推出央行数字货币。西塔拉曼说,政府决定……曝硬件可圈可点小米12Ultra,小米11彻底失宠,降到冰点曝光将于2022年5月10日正式闪亮登场小米12Ultra作为最强影像旗舰,曝光将于2022年5月10日正式闪亮登场小米12Ultra自然不会错过120瓦超级快充,曝光将于20……DAMA第一章数据管理数据管理的核心驱动因素数据管理的核心驱动力在于组织通过数据资产管理获得商业价值。关键在于拥有高质量、可靠性的数据做支撑。数据管理的目标数据安全数据质量元数据……员工发生工伤,公司应当承担哪些费用?前段时间,《人物》杂志公众号的一篇文章《外卖骑手,困在系统里》,刷屏了大家的朋友圈,一系列交警部门公布的数据背后,外卖员已成高危职业的话题引发了大家新一轮的思考。1、骑手……自动驾驶汽车还需要驾照吗太阳能板可以给新能源汽车充电,太阳能电池板经过逆变器可以输出220V交流电压,理论上有了220V电源后就可以为电动汽车充电,但是充电功率非常小,充电器可能无法工作,或者充电慢、……让飞羽触手可及佳能RF800mmF5。6LISUSM2022年2月,佳能正式发布了两款重量级长焦镜头RF800mmF5。6LISUSM和RF1200mmF8LISUSM,预计5月下旬正式开售。赶上了北京的早春,用这支轻量化与高画……2021诺贝尔化学奖揭晓,欧盟将指控苹果NFC垄断1、苹果为AirPods2ProMax推送4A400固件:支持FindMy查找功能(IT之家)10月6日消息,根据外媒MacRumors消息,苹果已经为AirPods2、……
配助听器,就只想配一只可以吗?四款堪比专业设备的拍照手机,拍照党必备飞利浦正式发布多款专业商用级会议视讯设备目前最先进的移动端芯片有那些?既然宇宙要反复爆炸重归死寂,那人类的文明再灿烂还有什么意义?Redmi7屏大声大电池大的入门手机mybatis多条件批量删除整理速卖通2022年将加大海外仓优选仓建设投入AMD在2022年产品线上首发会中展示最新的高性能计算技术半导体产业链关键环节再添新军薄膜沉积设备领军企业拓荆科技4月你愿意无条件把华为换成苹果吗?周杰伦的无聊猿NFT被盗,黑客获利54万美元正青春章小鱼最后和谁在一起了?正青春章小鱼扮演者是谁萌萌哒猫爪怎么画网传的几种丰胸知识,都是骗人的吗?下班去加油!年内四连涨油价重回7时代vivoX80和vivoX80Pro有什么区别,如何选择?登泰山21岁新梅西横空出世!4大豪门疯抢,国米35岁锋霸巴萨2人离藏书真实的世界在此刻人生哲理的说说最美的风景只能看一次一次就是一辈子防洪妙计曹操是我心目中的偶像作文

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利