概述
Key的设计规约
可读性和可管理性:
业务名:实体名:ID
bolg:article:1
简洁性:
减小key的长度,建议不要超过39字节
humanresource:employee:88301=>hr:emp:88301
不要包含特殊字符:
key不要包含特殊字符(空格、换行、引号)
建议使用英文与数字
Java对象存储方案
Java | redis类型 | 说明 | 场景 |
---|---|---|---|
JavaBean | String | 保存对象JSON序列化字符串 优点:使用简单,节省key 缺点:序列化、反序列化需要额外计算,无法局部调整。 | 可保存稳定的数据 例如:档案信息、设备参数、产品描述。 |
JavaBean | Hash | 最符合JavaBean特征的保存的方式 优点:key松散管理,可局部调整 缺点:hash->object需要额外编码 | 可保存稳定的数据 例如:档案信息、设备参数、产品描述。 |
List Set | String | json序列化存储小数据,修改频度低的集合 优点:节省空间 缺点:无法局部调整 | 富豪排行榜 各种TOP10、 TOP100 |
List Set | n/a | 变化频度高、或者单个对象很大、数量很大,不建议放入Redis,可分片缓存。 | 实时股票行情、货币汇率、实时运算... |
Redis的安全建议
1.Redis不要在外网被访问,禁止:bind 0.0.0.0
-bind 192.168.132.128
2.更改Redis的端口,不要6379
-port 8838
3.Redis使用非root账号启动
4.Redis没有设置密码或者弱密码,不要与登录密码相同
5.定期备份,save命令(Linux 自带crontab定时执行redis sava命令)
6.配置好linux防火墙规则
redis内存占用评估
占用内存:自身内存、缓冲内存、对象内存(实际存储数据的区域)。
缓冲内存:客户端缓冲区、复制缓冲区、AOF缓冲区。
Redis内存统计
info memory
指标 | 说明 |
---|---|
used_memory:13490096 | 数据占用了多少内存(字节) |
used_memory_human:12.87M | 数据占用了多少内存(M) |
used_memory_rss:13490096 | 操作系统已分配的内存量 |
used_memory_peak:15301192 | 占用内存的峰值(字节) |
used_memory_peak_human:14.59M | 占用内存的峰值(M) |
used_memory_lua:31744 | lua引擎占用内存大小(字节) |
mem_fragmentation_ratio:1.00 | 内存碎片率(正常1-1.5,可开启redis碎片整理功能) |
Redis内存设置上限
- 32位系统内存默认最大3G
- 64位系统默认最大为可用内存
- maxmemory配置项用于设置最大内存
- maxmemory 1gb
- maxmemory 128gb
- 一般预留30%内存。(redis允许调整最大内存)
redis内存回收策略
- noeviction: 永不过期,返回错误(默认)
- volatile-lru: 在即将过期的数据中删除使用最少的key(推荐)
- allkeys-lru: 在所有的数据中删除lru算法的key(推荐)
- volatile-random: 随机删除即将过期的key
- allkeys-random: 所有的key随机删除
- volatile-ttl: 按到期时间顺序,删除即将过去的key
lru:最近最少使用策略
最后
以上就是外向小馒头为你收集整理的【Redis】在项目中的设计规范、内存保障与安全选项的全部内容,希望文章能够帮你解决【Redis】在项目中的设计规范、内存保障与安全选项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复