【Redis】在项目中的设计规范、内存保障与安全选项

Key的设计规约

可读性和可管理性:

业务名:实体名:ID

bolg:article:1

简洁性:

减小key的长度,建议不要超过39字节
humanresource:employee:88301=>hr:emp:88301

不要包含特殊字符:

key不要包含特殊字符(空格、换行、引号)
建议使用英文与数字

Java对象存储方案

Javaredis类型说明场景
JavaBeanString

保存对象JSON序列化字符串

优点:使用简单,节省key

缺点:序列化、反序列化需要额外计算,无法局部调整。

可保存稳定的数据

例如:档案信息、设备参数、产品描述。

JavaBeanHash

最符合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:31744lua引擎占用内存大小(字节)
mem_fragmentation_ratio:1.00内存碎片率(正常1-1.5,可开启redis碎片整理功能)

Redis内存设置上限

  • 32位系统内存默认最大3G
  • 64位系统默认最大为可用内存
  • maxmemory配置项用于设置最大内存
    •  maxmemory 1gb
    • maxmemory 128gb
  • 一般预留30%内存。(redis允许调整最大内存)

redis内存回收策略

  1. noeviction: 永不过期,返回错误(默认)
  2. volatile-lru: 在即将过期的数据中删除使用最少的key(推荐)
  3. allkeys-lru: 在所有的数据中删除lru算法的key(推荐)
  4. volatile-random: 随机删除即将过期的key
  5. allkeys-random: 所有的key随机删除
  6. volatile-ttl: 按到期时间顺序,删除即将过去的key

lru:最近最少使用策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值