一.提高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))
 简单的数据交互  简单的数据交互  简单的数据交互  支持服务端数据运算  支持服务端数据运算

Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构的更多相关文章

  1. PHP操作redis之String(字符串)、List(列表)(一)

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key – value 缓存产品有以下三个特点: Redis支持数据的持久 ...

  2. Redis 源码简洁剖析 04 - Sorted Set 有序集合

    Sorted Set 是什么 Sorted Set 命令及实现方法 Sorted Set 数据结构 跳表(skiplist) 跳表节点的结构定义 跳表的定义 跳表节点查询 层数设置 跳表插入节点 zs ...

  3. Redis入门到高可用(九)——有序集合zset

    一.数据结构 集合与有序集合,列表与有序集合的对比 二.主要API zadd 将一个或多个 member 元素及其 score 值加入到有序集 key 当中. zrem 移除有序集 key 中的一个或 ...

  4. Day 07 数据类型的内置方法[列表,元组,字典,集合]

    数据类型的内置方法 一:列表类型[list] 1.用途:多个爱好,多个名字,多个装备等等 2.定义:[]内以逗号分隔多个元素,可以是任意类型的值 3.存在一个值/多个值:多个值 4.有序or无序:有序 ...

  5. redis列表和有序集合

    redis中的list数据类型是可以插入重复数据的,有去重的需求的话可以用redis有序集合数据类型 Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中. 如果某个成员已经是 ...

  6. Redis数据类型(字符串)

    Redis存放的字符串为二进制是安全的.字符串长度支持到512M. incr 递增数字INCR key 当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递 ...

  7. Redis学习笔记(七)——数据结构之有序集合(sorted set)

    一.介绍 Redis有序集合和集合一样都是string类型元素的机会,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.Redis正是通过分数来为集合中的成员进行从小到放大的排 ...

  8. 深入浅出分析MySQL MyISAM与INNODB索引原理、优缺点分析

    本文浅显的分析了MySQL索引的原理及针对主程面试的一些问题,对各种资料进行了分析总结,分享给大家,希望祝大家早上走上属于自己的"成金之路". 学习知识最好的方式是带着问题去研究所 ...

  9. Python自动化开发(三):循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作

    计数器的作用可以在死循环中,符合条件的情况下做自动退出中断 #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @Time : 2017/3/14 11:2 ...

随机推荐

  1. Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) A

    Description There are literally dozens of snooker competitions held each year, and team Jinotega tri ...

  2. 2个rman自动恢复的脚本

    ### scripts 1--the scirpt is used for restore db from vcs to a point to time recovery--and the targe ...

  3. js中对象的理解

    JS中对象是可变的控件集合,对象的内容是可以更改的,可以为它添加任意属性或删除,而基本数据类型虽然拥有方法,但它们的值是不可变的,之所以它们拥有方法,是因为当它们调用方法是,后台会自动创建一个相映包装 ...

  4. C# readonly和const的区别

    什么是静态常量(Const)和动态常量(Readonly) 先解释下什么是静态常量(Const)以及什么是动态常量(Readonly). 静态常量(Const)是指编译器在编译时候会对常量进行解析,并 ...

  5. Codeigniter CI 框架的一些优化思考

    前段时间使用CI做了两个小项目,对CI的流程和设计理念也有了一些新的认识.CI架构的一些基本优化这里就不做介绍了,如搬离system 文件夹等. 最近有一个稍微大一点的系统,也准备拿CI来做.设计时遇 ...

  6. hdu4578Transformation(线段树多个lz标记)

    这里以3次方来举例讲一下这题的做法,其它维类似. 如果要求某一个值的3次方那么sum = t^3,设t = x+y.那也就是sum = (x+y)^3. 假如我让每个数都加z t = x+y+z,我可 ...

  7. Java GUI setSize()、setPreferredSize()的区别

    setSize().setPreferredSize()都可以设置组件的大小,但二者的使用有所不同. 1.setSize()的使用方式 setSize(int width,int height) se ...

  8. PL/SQL 多表关联UPDATE

    假设有两个表A和B,A表字段a,b,c,d,B表字段b,e,f,两表的关联条件是字段b,现在想做个data patch,欲将B表中的字段e的值patch给A表的字段c. 有如下两种方法: 1 upda ...

  9. How to detect the presence of the Visual C++ 2010 redistributable package

    Question: I have seen your previous blog posts that describe how to detect the presence of the Visua ...

  10. SQLite基础教程目录

    SQLite基础教程目录 SQLite主页 SQLite概述 SQLite -安装 SQLite -命令 SQLite -语法 SQLite -数据类型 SQLite -创建数据库 SQLite -附 ...