Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构
一.提高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 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构的更多相关文章
- PHP操作redis之String(字符串)、List(列表)(一)
Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key – value 缓存产品有以下三个特点: Redis支持数据的持久 ...
- Redis 源码简洁剖析 04 - Sorted Set 有序集合
Sorted Set 是什么 Sorted Set 命令及实现方法 Sorted Set 数据结构 跳表(skiplist) 跳表节点的结构定义 跳表的定义 跳表节点查询 层数设置 跳表插入节点 zs ...
- Redis入门到高可用(九)——有序集合zset
一.数据结构 集合与有序集合,列表与有序集合的对比 二.主要API zadd 将一个或多个 member 元素及其 score 值加入到有序集 key 当中. zrem 移除有序集 key 中的一个或 ...
- Day 07 数据类型的内置方法[列表,元组,字典,集合]
数据类型的内置方法 一:列表类型[list] 1.用途:多个爱好,多个名字,多个装备等等 2.定义:[]内以逗号分隔多个元素,可以是任意类型的值 3.存在一个值/多个值:多个值 4.有序or无序:有序 ...
- redis列表和有序集合
redis中的list数据类型是可以插入重复数据的,有去重的需求的话可以用redis有序集合数据类型 Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中. 如果某个成员已经是 ...
- Redis数据类型(字符串)
Redis存放的字符串为二进制是安全的.字符串长度支持到512M. incr 递增数字INCR key 当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递 ...
- Redis学习笔记(七)——数据结构之有序集合(sorted set)
一.介绍 Redis有序集合和集合一样都是string类型元素的机会,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.Redis正是通过分数来为集合中的成员进行从小到放大的排 ...
- 深入浅出分析MySQL MyISAM与INNODB索引原理、优缺点分析
本文浅显的分析了MySQL索引的原理及针对主程面试的一些问题,对各种资料进行了分析总结,分享给大家,希望祝大家早上走上属于自己的"成金之路". 学习知识最好的方式是带着问题去研究所 ...
- Python自动化开发(三):循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作
计数器的作用可以在死循环中,符合条件的情况下做自动退出中断 #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @Time : 2017/3/14 11:2 ...
随机推荐
- MySQL简单的确定瓶颈
如果接到报警可能需要ssh看看瓶颈是什么,怎么下手 确定os层 确定磁盘是否够用的:df –h 再看看系统整体状态: top 哪些进程占用资源比较多,能杀就杀 系统的负载 vmstat看看wa值,r列 ...
- log4j.properties 打印到控制台 写法
# 日志输出级别(INFO)和输出位置(stdout,R)log4j.rootLogger=INFO, stdout # 日志输出位置为控制台log4j.appender.stdout=org.apa ...
- nopCommerce - asp.net开源商城
nopcommerce官网 http://nopcommerce.codeplex.com/ nopCommerce is a open source e-commerce solution that ...
- 【转】HashMap 和 HashTable 到底哪不同 ?
2017/05/29 | 分类: 基础技术 | 2 条评论 | 标签: HASHMAP, HASHTABLE 分享到: 原文出处: 程序员赵鑫 HashMap和HashTable有什么不同?在面试和被 ...
- SQL Server 2008添加字段成功,但提示列名无效
在sql后查询,给现有表添加一个字段,即执行sql语句: alter table [sxrq_1108].[dbo].[公司周报表详情] add 总计 int default 0 然后在上述sql查语 ...
- 【数据库-Azure SQL Database】SQL Server 如何将数据库备份到 Azure Storage
打开本地的 SQL Server Management Studio.首先创建 Credentials.命令如下: IF NOT EXISTS (SELECT * FROM sys.credent ...
- XSS 攻击实验 & 防御方案
XSS 攻击&防御实验 不要觉得你的网站很安全,实际上每个网站或多或少都存在漏洞,其中xss/csrf是最常见的漏洞,也是最容易被开发者忽略的漏洞,一不小心就要被黑 下面以一个用户列表页面来演 ...
- ZOJ 3466 The Hive II (插头DP,变形)
题意:有一个n*8的蜂房(6边形的格子),其中部分是障碍格子,其他是有蜂蜜的格子,每次必须走1个圈取走其中的蜂蜜,在每个格子只走1次,且所有蜂蜜必须取走,有多少种取法? 思路: 以前涉及的只是n*m的 ...
- 2012-2013 ACM-ICPC, NEERC, Central Subregional Contest C Sequence (打表)
打个表找找规律,到24445的时候乘2以后产生了0出现循环. 一般地,判断循环节是否存在可以用Floyd判圈算法. #include<bits/stdc++.h> using namesp ...
- git - GNU 交互工具
语法 git [options] [path1] [path2] gitps [options] gitview [options] filename 注意 GIT 包 的 主要 配置文件 是 .gi ...