文档章节

redis使用规范

EveryDayNew
 EveryDayNew
发布于 2015/12/29 11:18
字数 703
阅读 1562
收藏 11

1、设置超时时间[最重要]

目前有许多key没有设置超时时间,导致一直占用内存。

需要增加操作步骤,设置超时时间。时间尽量短。

某些业务要求key长期有效。可以在每次写入时,都设置超时时间,让超时时间顺延。

短的超时时间,如 5分钟,10分钟,30分钟,1小时,3小时,1天等

长的超时时间,如 7天,15天,1个月,3个月,6个月等

示例代码如下:

// 设置有效期
			jedis.expire(cacheMapName, ZLConstant.SECONDS_1_MONTH);

// 如果存在key
			if (jedis.exists(mapName)) {
				existMap = true;
			}
			// 写入登录信息缓存
			jedis.hset(mapName, cacheKey, userJson);
			// 如果是新建的,就设置超时时间
			if (!existMap) {
				// 设置超时时间
				jedis.expire(mapName, expireSeconds);
			}

2、高频和低频分离

高频数据存入Redis缓存,低频数据不要存入Redis缓存。

高频数据是经常访问的数据,在这里做好压力缓冲就行了。对于大量数据和列表数据尤其适用。

如,某商店的所有评价数据,总共有5000条之多,最近的30条(高频)可能是最常访问的,可以存入Redis缓存,其他的数据(低频)都不需要存缓存。

3、合理使用list,map,set等集合结构

结合具体业务,设置合理的数据结构,找出更好的选择。

集合结构还可以减少key的个数。

4、尽量使用字符串格式

可视化,便于查看和管理。

特别是在大批量数据的时候,效果明显。

5、合理设置key的格式

多系统在共用缓存,需要key唯一。

合适的key,便于查看,统计,排错。

key的格式,如:系统名+业务名+业务数据+其他

6、减少key的个数

为了过期管理,合理减少key。

比如,把key-value数据聚合,放到map、list里面。一个集合结构里面就可以包含很多个小数据。

7、精细化运营

之前的使用方法一直是粗放式。业务量小时,没问题;业务量大了,就各种问题。

为了未来系统稳定,为了每个人的职业成长,需要学会精细化运营。

深入分析业务流程,合理安排数据结构,合理使用公共资源,优化读写效率,提高系统抗风险能力。


© 著作权归作者所有

共有 人打赏支持
EveryDayNew
粉丝 5
博文 45
码字总数 31409
作品 0
杭州
程序员
phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题)

phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题) 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 当我们在开发一个项目时,我们可能会遇到很多问题,比如...

喵了_个咪
2015/12/12
114
0
Redis的KEYS命令引起RDS数据库雪崩,RDS发生两次宕机,造成几百万的资金损失

版权声明:本文为谙忆原创文章,转载请附上本文链接,谢谢。 https://blog.csdn.net/qq_26525215/article/details/82791224 文章目录 第一次宕机 第二次宕机 总结 Redis开发建议 最近的互联网...

谙忆
09/20
0
0
devops| redis 数据量暴涨进行数据清理实战

date: 2018-4-17 21:57:44 title: devops| redis 数据量暴涨进行数据清理实战 description: redis 作为程序员的 「瑞士军刀」, 在现有业务中扮演着重要的角色. 为了避免触雷, 「保卫世界和平...

daydaygo
04/18
0
0
Redis进阶实践之十六 Redis大批量增加数据

Redis进阶实践之十六 Redis大批量增加数据 一、介绍 有时候,Redis实例需要在很短的时间内加载大量先前存在或用户生成的数据,以便尽可能快地创建数百万个键。这就是所谓的批量插入,本文档的...

morpheusWB
09/13
0
0
Redis安全规范----check list

Redis安全规范—-check list. 1.信任的内网运行,尽量避免有公网访问 在/etc/redis/redis.conf中配置如下:bind 127.0.0.1 2.绑定redis监听的网络接口 如果服务器有多个IP,可限定redis serve...

Tar0
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部