我是靠谱客的博主 外向小馒头,最近开发中收集的这篇文章主要介绍【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:最近最少使用策略

最后

以上就是外向小馒头为你收集整理的【Redis】在项目中的设计规范、内存保障与安全选项的全部内容,希望文章能够帮你解决【Redis】在项目中的设计规范、内存保障与安全选项所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部