一.提高Redis使用性能秘诀
KEY尽量少的原则,能放在1个KEY的就放入1个KEY,KEY开销很大
尽量减少与Redis发生的交互次数,能批量的就批量,能事务、管道的就事务、管道
从业务架构分析确定使用哪种数据类型,从全局出发,如果类型选错了再改变就很不容易
使用每一个Redis命令注意是O(1),还是O(N),切记滥用,认准每个命令的特性再使用也不迟
使用PHP Redis的C语言扩展,性能远远高于PHP脚本编写的文件
时刻清醒你往Redis里存储了什么,频繁交互、相对静态的小数据存储至Redis是理想的,300万用户所有不常用的信息都无脑塞进去不但浪费内存(有可能服务器128G内存不够用必须要老大花钱买内存),还影响Redis性能,增大管理成
二.Redis各大类型特性注意事项一览表
字符串(Strings) | 哈希(Hashes) | 列表(Lists) | 集合(Sets) | 有序集合(Sorted sets) |
512MB/Value | 4294967295/Hash | 4294967295/List | 4294967295/Set | 4294967295/Stored |
Key【唯一】 Value【重复】 |
Key【唯一】 Hash key【唯一】 Value【重复】 |
Key【唯一】 Index【唯一】 Value【重复】 |
Key【唯一】 Value【唯一】 |
Key【唯一】 Value【唯一】 Score【重复】 Value【唯一】 |
无序 | key无序 Hash key按先后进入顺序有序 |
key无序 Index按先后进入顺序有序 |
key无序 Value无序 |
key无序 按Score值排序有序 |
简单存储,持久化的memcached,计数器、灵活操作字符串 | Json KV结构,单表存储,缓存,对象存储 | 队列系统,时间轴系统设计,显示极端数据,先进先出,后进后出 | 以key为班级,Value老师,可以求出不同班级中老师的交集、并集 | 以key为班级,Score为分数,Value为学生的考试成绩排行榜报表等分组统计功能 |
最原始的缓存系统,性能高,任意1个的性能O(1) | 类似关系型数据库操作,性能高,任意1个的性能O(1) | 操作首尾数据,统计长度很快O(1),中间数据操作性能不高O(N) | 类似数组下标访问元素,添加,删除,查找任意1个的复杂度都是O(1) | Sets升级版,有分组+统计等功能,添加,删除,查找任意1个的复杂度都是O(log(1)) |
简单的数据交互 | 简单的数据交互 | 简单的数据交互 | 支持服务端数据运算 | 支持服务端数据运算 |
时间: 2024-10-24 11:17:03