当前位置:文档之家› Redis容量及使用规划

Redis容量及使用规划

Redis容量及使用规划
Redis容量及使用规划

Redis新的存储模式diskstore

在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。

(本文主要讨论Redis未启用VM支持情况)

1. Schema

MySQL: 需事先设计

Memcached: 无需设计

Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下

一些规划

?数据项: value保存的内容是什么,如用户资料

?Redis数据类型: 如String, List

?数据大小: 如100字节

?记录数: 如100万条(决定是否需要拆分)

???

上面的规划就是一种schema,为什么Redis在大型项目需要事先设计schema?因为Redis

服务器有容量限制,数据容量不能超出物理内存大小,同时考虑到业务数据的可扩充性,记录数会持续增多、单条记录的内容也都会增长,因此需要提前规划好容量,数据架构师就是

通过schema来判断当前业务的Redis是否需要”分库分表”以满足可扩展需求。

2. 容量及带宽规划

容量规划

MySQL: < 硬盘大小

Memcached: < RAM

Redis: < RAM

带宽规划

由于Redis比MySQL快10倍以上,因此带宽也是需要事先规划,避免带宽跑满而出现瓶颈。

3. 性能规划(QPS)

当系统读写出现瓶颈,通常如何解决?

MySQL

写: 拆分到多服务器

读: (1) 拆分(2) 写少也可以通过增加Slave来解决

Memcached

读写: 都通过hash拆分到更多节点。

Redis:

写:拆分

读: (1) 拆分(2) 写少也可以通过增加Slave来解决

4. 可扩展性

MySQL: 分库分表

Memcached: hash分布

Redis:也可以分库,也可以hash分布

小结

通过以上分析,Redis在很多方面同时具备MySQL及Memcached使用特征,在某些方面

则更像MySQL。

由于Redis数据不能超过内存大小,一方面需要进行事先容量规划,保证容量足够;另外一方面设计上需要防止数据规模无限制增加,进而导致Redis不可扩展。

Redis需要象MySQL一样预先设计好拆分方案。

小问题

在MySQL中,通过预先建立多表或者库可以在业务增长时候将这些表或库一分为二部署到更多服务器上。

在Redis中,”分库分表”应当如何实现?有什么好的设计模式?

Redis集群研究

Redis Sentinel数据库M-S配置(Redis的分片与复制集技术) 1.Redis Sentinel介绍 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: 监控,能持续监控Redis的主从实例是否正常工作; 通知,当被监控的Redis实例出问题时,能通过API通知系统管理员或其他程序;自动故障恢复,如果主实例无法正常工作,Sentinel将启动故障恢复机制把一个从实例提升为主实例,其他的从实例将会被重新配置到新的主实例,且应用程序会得到一个更换新地址的通知。 Redis Sentinel是一个分布式系统,可以部署多个Sentinel实例来监控同一组Redis实例,它们通过Gossip协议来确定一个主实例宕机,通过 Agreement协议来执行故障恢复和配置变更,一般在生产环境中部署多个实例来提高系统可用性,只要有一个Sentinel实例运行正常,就能保证被监控的Redis实例运行正常(类似Zookeeper,通过多个Zookeeper来提高系统可用性); 2.Redis HA方案 HA的关键在于避免单点故障及故障恢复,在Redis Cluster未发布之前,Redis 一般以主/从方式部署(这里讨论的应用从实例主要用于备份,主实例提供读写,有不少应用是读写分离的,读写操作需要取不同的Redis实例,该方案也可用于此种应用,原理都是相通的,区别在于数据操作层如何封装),该方式要实现HA主要有如下几种方案: 1).keepalived:通过keepalived的虚拟IP,提供主从的统一访问,在主出现问题时,通过keepalived运行脚本将从提升为主,待主恢复后先同步后自动变为主,该方案的好处是主从切换后,应用程序不需要知道(因为访问的虚拟IP 不变),坏处是引入keepalived增加部署复杂性; 2).zookeeper:通过zookeeper来监控主从实例,维护最新有效的IP,应用通过zookeeper取得IP,对Redis进行访问; 3).sentinel:通过Sentinel监控主从实例,自动进行故障恢复,该方案有个缺陷:因为主从实例地址(IP&PORT)是不同的,当故障发生进行主从切换后,应用程序无法知道新地址,故在Jedis2.2.2中新增了对Sentinel的支持,应用通过 redis.clients.jedis.JedisSentinelPool.getResource()取得的Jedis 实例会及时更新到新的主实例地址。 笔者所在的公司先使用了方案1一段时间后,发现keepalived在有些情况下会导致数据丢失,keepalived通过shell脚本进行主从切换,配置复杂,而且keepalived成为新的单点,后来选用了方案3,使用Redis官方解决方案;(方

SpringBoot企业级开发教程教学大纲

《Spring Boot企业级开发教程》课程教学大纲 (课程英文名称) 课程编号: XXXX 学分:5学分 学时:60学时(其中:讲课学时:38 上机学时:22) 先修课程:Java基础案例教程、Java Web程序设计任务教程、 Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)适用专业:信息及其计算机相关专业 开课部门:计算机系 一、课程的性质与目标 《Spring Boot企业级开发教程》是面向计算机相关专业开设的一门专业的Java 应用开发课程,主要讲解了当前主流的Spring Boot框架以及与第三方技术整合开发实战内容。通过本课程的学习,学生能够理解并掌握Spring Boot 框架的基础知识,同时能够掌握Spring Boot与常用第三方技术的整合实现实际开发中的业务需求,包括实现Web开发、数据访问、缓存管理、安全管理、消息服务、任务管理等。 二、课程的主要内容及基本要求 第1章 Spring Boot开发入门(4学时) [知识点] ?Spring Boot概述 ?环境准备 ?使用Maven方式构建Spring Boot项目 ?使用Spring Initializr方式构建Spring Boot项目 ?单元测试 ?热部署 ?Spring Boot依赖管理

?Spring Boot自动配置 ?Spring Boot执行流程 [重点] ?使用Maven方式构建Spring Boot项目 ?使用Spring Initializr方式构建Spring Boot项目 ?单元测试 ?Spring Boot依赖管理 ?Spring Boot自动配置 ?Spring Boot执行流程 [难点] ?Spring Boot自动配置 ?Spring Boot执行流程 [基本要求] ?了解Spring Boot的发展和优点 ?掌握Spring Boot项目的构建 ?掌握Spring Boot的单元测试和热部署 ?熟悉Spring Boot的自动化配置原理 ?熟悉Spring Boot的执行流程 [实践与练习] 建议完成相关测试题,并安排上机,重点考核如何编写Spring Boot入门程序,并参考教材进行Spring Boot源码分析。 第2章 Spring Boot核心配置与注解(6学时) [知识点] ?application.properties配置文件 ?application.yaml配置文件 ?使用注解@ConfigurationProperties和@Value注入属性 ?两种注解对比分析 ?使用@PropertySource加载配置文件 ?使用@ImportResource加载XML配置文件 ?使用@Configuration编写自定义配置类 ?使用Profile文件进行多环境配置 ?使用@Profile注解进行多环境配置 ?随机值设置以及参数间引用 [重点] ?application.properties配置文件

Redis在大数据中的使用技巧

Redis在大数据中的使用技巧 今天将会跟大家讨论一些Redis在大数据中的使用,包括一些Redis的使用技巧和其他的一些内容。 一、Redis封装架构讲解 实际上NewLife.Redis是一个完整的Redis协议功能的实现,但是Redis的核心功能并没有在这里面,而是在NewLife.Core里面。 这里可以打开看一下,NewLife.Core里面有一个NewLife.Caching的命名空间,里面有一个Redis类,里面实现了Redis的基本功能;另一个类是RedisClient是Redis的客户端。 Redis的核心功能就是有这两个类实现,RedisClient代表着Redis客户端对服务器的一个连接。Redis真正使用的时候有一个Redis连接池,里面存放着很多个RedisClient对象。 所以我们Redis的封装有两层,一层是NewLife.Core里面的Redis以及RedisClient;另一层就是NewLife.Redis。这里面的FullRedis是对Redis的实现了Redis的所有的高级功能。 这里你也可以认为NewLife.Redis是Redis的一个扩展。 二、Test实例讲解Redis的基本使用 1、实例 这里https://www.doczj.com/doc/cd13287089.html,eConsole();是向控制台输出日志,方便调试使用查看结果。 接下来看第一个例子Test1,具体的我都在代码中进行了注释 Set的时候,如果是字符串或者字符数据的话,Redis会直接保存起来(字符串内部机制也是保存二进制),如果是其他类型,会默认进行json序列化然后再保存起来。

Get的时候,如果是字符串或者字符数据会直接获取,如果是其他类型会进行json反序列化。 Set第三个参数过期时间单位是秒。 vs调试小技巧,按F5或者直接工具栏“启动”会编译整个解决方案会很慢(VS默认),可以选中项目然后右键菜单选择调试->启动新实例,会只编译将会用到的项目,这样对调试来说会快很多。 大家运行调试后可以看到控制台输出的内容:向右的箭头=》是ic.Log=XTrace.Log 输出的日志。 字典的使用:对象的话,需要把json全部取出来,然后转换成对象,而字典的话,就可以直接取某个字段。 队列是List结构实现的,上游数据太多,下游处理不过来的时候,就可以使用这个队列。上游的数据发到队列,然后下游慢慢的消费。另一个应用,跨语言的协同工作,比方说其他语言实现的程序往队列里面塞数据,然后另一种语言来进行消费处理。这种方式类似MQ的概念,虽然有点low,但是也很好用。 集合,用的比较多的是用在一个需要精确判断的去重功能。像我们每天有三千万订单,这三千万订单可以有重复。这时候我想统计下一共有订单,这时候直接数据库group by是不大可能的,因为数据库中分了十几张表,这里分享个实战经验: 比方说揽收,商家发货了,网点要把件收回来,但是收回来之前网点不知道自己有多少货,这时候我们做了一个功能,也就是订单会发送到我们公司来。我们会建一个time_site 的key的集合,而且集合本身有去重的功能,而且我们可以很方便的通过set.Count功能来统计数量,当件被揽收以后,我们后台把这个件从集合中Remove掉。然后这个Set中

Redis的5个常见使用场景

Redis的5个常见使用场景概括 大家平时在使用Redis的时候有没有总结过Redis常用于哪些场景呢。下面科多老师带着大家一起来总结一下,希望能够帮助到各位同学。 1、会话缓存(Session Cache) 最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis 缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗? 幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis 来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。 2、全页缓存(FPC) 除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性 问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。 再次以Magento为例,Magento提供一个插件来使用Redis作为全页缓存后端。 此外,对WordPress的用户来说,Pantheon有一个非常好的插件wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。 3、队列 Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis 能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。 如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从这 里去查看。 4、排行榜/计数器 Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set) 和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”,我们只需要像下面一样执行即可: 当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行: ZRANGE user_scores 0 10 WITHSCORES

Redis面试题及复习资料

Redis 是一个基于内存的高性能key-value数据库。(有空再补充,有理解错误或不足欢迎指正) Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性能消息队列服务,用他的Set可以做高性能的tag 系统等等。 另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。 Redis支持的数据类型 Redis通过Key-Value的单值不同类型来区分, 以下是支持的类型: Strings Lists Sets 求交集、并集 Sorted Set hashes

为什么redis需要把所有数据放到内存中? Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征。 如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。在内存越来越便宜的今天,redis将会越来越受欢迎。 如果设置了最大使用的内存,则数据已有记录数达到内存限值后不能继续插入新值。 Redis是单进程单线程的 redis利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销 虚拟内存 当你的key很小而value很大时,使用VM的效果会比较好.因为这样节约的内存比较大. 当你的key不小时,可以考虑使用一些非常方法将很大的key变成很大的value,比如你可以考虑将key,value组合成一个新的value. vm-max-threads这个参数,可以设置访问swap文件的线程数,设置最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的. 可能会造成比较长时间的延迟,但是对数据完整性有很好的保证. 自己测试的时候发现用虚拟内存性能也不错。如果数据量很大,可以考虑分布式或者其他数据库 分布式 redis支持主从的模式。原则:Master会将数据同步到slave,而slave不会将数据同步到master。Slave启动时会连接master来同步数据。 这是一个典型的分布式读写分离模型。我们可以利用master来插入数据,slave 提供检索服务。这样可以有效减少单个机器的并发访问数量。

B. VisiSet 入门手册

VisiSet中文操作手册_V1.0 Matrix 2000 目录 一、调试工具及界面介绍............................................................................................................. - 2 - 1、打开调试软件V ISI S ET (2) 2、连接V ISI S ET与读码器 (2) 3、调试读码器 (3) 四、参数调试 ............................................................................................................................... - 6 -附录1. 读码器固件升级方法

一、调试工具及界面介绍 1、打开调试软件VisiSet 正确安装读码器后,打开VisiSet软件。有两种方法: <1> 点击桌面上的快捷方式,如下图: <2> 从开始菜单启动,点击开始->程序->Datalogic->VisiSet->VisiSet.exe。 2、连接VisiSet与读码器 打开VisiSet后,程序窗口如下图所示: 点击工具栏中的Options按钮,会出现下面的窗口: 此窗口用来设置读码器与电脑通讯所用的串口的设置。例如,选择使用哪一个串口,波特率是多少,是否有奇偶校验等。把这些设置与电脑串口的设置改为一样。然后点击Save

关闭此窗口。出厂时的设定为:115200-8-N-1 如下图,点击Connect : 大约2秒钟,VisiSet 与读码器连接成功,连上后的状态如下图: 左边的一列按钮为调试工具,用于调试读码器;右边为数据显示窗口,可以显示读到的条码的内容。 3、 调试读码器 VisiSet 与读码器成功连接后,我们就可以对读码器进行调试。 测试工具 数据显示窗口

Redis数据库安装使用说明

Redis数据库安装使用说明 Redis数据库安装使用说明 Windows 安装说明 下载 文件 配置 启动 CentOS 安装说明 下载 安装 配置 启动 关闭 redis-py 检测 安装 说明 官方网站 Windows 安装说明 Windows下启动请使用Administrator账户 下载

请点击这里选择需要下载的版本 Windows版本只是为了开发使用,正式环境请选择在Linux下安装使用文件 程序说明 redis-benchmark.exe Redis性能测试工具 redis-check-aof.exe数据修复 redis-check-dump.exe检查导出工具 redis-cli.exe Redis客户端 redis-server.exe Redis服务器 redis.windows.conf配置文件 配置 配置文件为 redis.windows.conf 主要修改以下几个参数: 内网运行,建议不设置认证密码 port6379#端口,默认为6379 logfile"redis.log"#日志文件

dbfilename dump.rdb #数据库文件 maxheap1024000000#修改为该值即可 dir ./ #路径(当前目录下) 启动 进入控制台,并跳转到reids-server.exe目录下,输入以下命令即可: redis-server redis.windows.conf 设置快捷启动 在redis程序文件夹下创建StartRedisDB.bat文件,并写入如下内容 redis-server redis.windows.conf pause 保存即可,下次可以直接点击运行Redis服务端 CentOS 安装说明 如果安装使用过,请使用你自己的方法;如果没有安装使用过,请根据我的步骤安装

redis twemproxy集群安装手册

一、概述 1、Redis集群安装有两种方式,第一种为编译源码安装,第二种为二进制安 装,具体选择哪一种方式根据实际情况决定。 2、本文档所使用版本如下: redis:redis-3.0.0-rc5 Twemproxy:nutcracker-0.4.0 autoconfig:2.69 3、常用Linux命令不清楚可以查看相关网站 4、本文档所述redis集群架构如下: 5、本文档使用120和121搭建redis集群,每台机器各启动两个redis实例 和一个twemproxy实例。Redis端口分别为6379 6380 6、采用源码编译方式安装需服务器具有访问外网权限,二进制安装不需求。 7、所有安装包均已上传至文件服务器 二、源码编译方式安装 1、安装automake 执行:yum install automake,出现如下输入Y完成安装:

2、libtool安装 执行:yum install libtool 出现如下输入yes完成安装 3、autoconfig安装 ①上传autoconf-2.69.tar.gz至/usr/local/src目录下 ②执行tar -xzvf autoconf-2.69.tar.gz ③cd autoconf-2.69 ④执行./configure ⑤执行make ⑥执行make install 至此,autoconfig安装完毕 4、redis安装 ①上传redis-3.0.0-rc5.zip至/usr/local/src目录下 ②执行unzip redis-3.0.0-rc5.zip ③执行cd redis-3.0.0-rc5 ④执行make&&make install ⑤执行mkdir /usr/local/redis ⑥执行cp src/redis-server src/redis-cli /usr/local/redis ⑦执行cd /usr/local/redis ⑧执行chmod 777 redis-server redis-cli ⑨执行./redis-server --port 6379 --save "" & 出现如下 ⑩执行./redis-cli -p 6379出现如下

redis配置文件详解

redis 是一款开源的、高性能的键-值存储(key-value store),和 memcached 类似,redis 常被称作 是一款 key-value 内存存储系统或者内存数据库,同时由于它支持丰富的数据结构,又被称为一种数据结 构服务器(data structure server)。 编译完 redis,它的配置文件在源码目录下 redis.conf ,将其拷贝到工作目录下即可使用,下面具体解释redis.conf 中的各个参数: 1 daemonize no 默认情况下,redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes。 2 pidfile /var/run/redis.pid 当 Redis 在后台运行的时候,Redis 默认会把 pid 文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个 redis 服务时,需要指定不同的 pid 文件和端口 3 port 监听端口,默认为 6379 4 #bind 127.0.0.1 指定 Redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中为了安全最好设置该项。默认注释掉,不开启 5 timeout 0 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接

6 tcp-keepalive 0 指定 TCP 连接是否为长连接,"侦探"信号有 server 端维护。默认为 0.表示禁用 7 loglevel notice log 等级分为 4 级,debug,verbose, notice, 和 warning。生产环境下一般开启 notice 8 logfile stdout 配置 log 文件地址,默认使用标准输出,即打印在命令行终端的窗口上,修改为日志文件目录 9 databases 16 设置数据库的个数,可以使用 SELECT 命令来切换数据库。默认使用的数据库是 0 号库。 默认 16 个库 10 save 900 1 save 300 10 save 60 10000 保存数据快照的频率,即将数据持久化到 dump.rdb 文件中的频度。用来描述"在多少秒期 间至少多少个变更操作"触发 snapshot 数据保存动作

redis系列三-springboot如何使用redis做缓存及缓存注解的用法总结

redis系列三-springboot如何使用redis做缓存及缓存注解的 用法总结 1. 概述 本文介绍spring boot 如何使用Redis做缓存,如何对redis 缓存进行定制化配置(如key的有效期)以及spring boot 如何初始化redis做缓存。使用具体的代码介绍了@Cacheable,@CacheEvict,@CachePut,@CacheConfig等注解及其属性的用法。 2. spring boot集成redis 2.1. application.properties 配置application.properties,包含如下信息: 指定缓存的类型 配置redis的服务器信息 请不要配置spring.cache.cache-names值,原因后面再说 ## 缓存 # spring.cache.cache-names=book1,book2 spring.cache.type=REDIS # REDIS (RedisProperties)

spring.redis.database=0 spring.redis.host=192.168.188.7 spring.redis.password= spring.redis.port=6379 spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.pool.max-active=100 spring.redis.pool.max-wait=-1123456789101112131234567891 0111213 2.2. 配置启动类 @EnableCaching: 启动缓存 重新配置RedisCacheManager,使用新的配置的值 @SpringBootApplication @EnableCaching // 启动缓存 public class CacheApplication { private static final Logger log = LoggerFactory.getLogger(CacheApplication.class); public static void main(String[] args) { https://www.doczj.com/doc/cd13287089.html,("Start CacheApplication.. ");

我终于深入参与了一个分布式系统了,好多想法不一样了!

我终于深入参与了一个分布式系统了,好多想法不一样了! 原文出处:Turbo Zhang 的博客前言 过去两个月深入的参与了一个分布式系统的开发,记得之前有人说过“想成为架构师之前,都是从微观架构开始的”。尽 管我从没想过将来的某一天要成为一个架构师,或者领域专家,我只是想萌萌哒的编码,写着自己喜欢的Code,和一 群志同道合的朋友做出大家喜欢的商品和产品。但是工作久了慢慢的搭架子的事情还是会来到你的面前,因为时间总会把一部分人慢慢推向海边,使得他们成为最早见到阳光的人。不扯淡了,为什么要说阳光呢,还是因为过去的两(三)个月可能过的太充实也太痛苦了,完成之后,曙光来临的时候整个人是会发光的哦。“深度”参与是因为我终于有机会在搭 架子的过程中有了话语权和选择权,同时也会承担70%以上的编码工作。 之前我的自我认知是我可能在软件方面的积累还可以,比如设计模式,架构分层,程序解耦,API入手等方面,但是总觉得我在硬件网络方面积累的太少,太薄了。 比如: 不同操纵系统之间的特点;

网络端口管理与分发; 哪些网络协议可以帮助我们更好的完成工作,监控虚拟机的时候是在虚机上加代理好还是用协议去控制; 硬件是否支持分布式,在扩展过程中对于.net C#的兼容怎么样; 什么时候使用多线程,在把线程交给程序调度的时候我们怎么控制和捕捉线程的异常; 日志系统对于整个分散的系统是多么的重要; 何时使用关系数据库,什么时候使用Nosql; 消息队列用擅长的MSMQ还是RabbitMQ. 怎样有效的和其他部门的同事沟通; 用什么样的方式去有效调度不同语言开发的系统; 测试用例对于大系统从零散到完整是多么的重要; 系统标准,代码原则对于后期的维护余扩展是多么的重要;等; 项目简介 首先项目详细内容不便多说,简答的说,就是为国内某大型厂商建立一套协调其自身搭建的私有云以及其购买的公有 云的一套系统。说牛X一点就是:一套混合云系统。 使用Restful

云数据库Redis版

云数据库 Redis 版 用户指南

用户指南 使用购买 Redis 的账号登录 Redis 管理控制台。进入 Redis 实例列表界面,如下图所示。 管理实例 修改密码 如果您忘记密码、需要修改旧密码,或者在创建实例时没有设置密码,您可以重新设置实例的密码。 登录 Redis 管理控制台。 定位到目标实例,点击实例ID或者管理进入实例信息页面。 在修改密码窗口,输入旧密码和新密码,点击确认。 注意:如果您忘记密码,在修改密码窗口点击忘记旧密码的链接,可以在重置密码的窗口设置新密码。 云数据库 Redis 版支持按量付费模式,按量付费可以可执行变配操作。详细步骤请参考变配流程。 阿里云数据库支持经典网络和专有网络两种网络类型。本章介绍两种网络类型的区别及设置方法。 背景信息 在阿里云平台上,经典网络和专有网络的区别如下:

1.2.经典网络:经典网络中的云服务在网络上不进行隔离,只能依靠云服务自身的安全组或白名单策略来阻挡非法访问。 专有网络(Virtual Private Cloud,简称 VPC):专有网络帮助用户在阿里云上构建出一个隔离的网络环境。用户可以自定义专有网络里面的路由表、IP 地址范围和网关。此外用户可以通过专线或者VPN 的方式将自建机房与阿里云专有网络内的云资源组合成一个虚拟机房,实现应用平滑上云。 注意:经典网络可以转换为专有网络,专有网络不支持更换为经典网络。 Redis 默认使用经典网络,如果您要使用专有网络(VPC),Redis 和 VPC 必须在同一地域,有以下两种方式: 如果 Redis 还没有创建,您可以先建立 VPC,然后在 VPC 下创建 Redis,具体请参见下文 新建Redis场景。 如果 Redis 已经创建,您可以在 Redis 同一地域创建 VPC,然后将 Redis 加入 VPC,具体请参见下文 已有 Redis场景。 新建 Redis 场景 创建 VPC, 具体请参见 VPC 快速入门。创建与 VPC 所在地域一致的 Redis 实例。 在购买过程中,网络类型选择专有网络,选择对应的 VPC 即可。参见 创建实例 章节。 已有 Redis 场景 创建与 Redis实例所在地域一致的 VPC,具体请参见 VPC快速入门。 登录 Redis 管理控制台,选择目标实例,单击管理。 在实例信息页面,单击切换为专有网络。 在切换为专有网络页面中选择 VPC 和 虚拟交换机,单击确定,如下图所示。

Redis安装部署文档

服务器安装配置手册 Redis服务器安装分册 目录 1概要 (3) 2缩略语和术语 (3) 3要求 (3) 4升级注意事项 (3) 5操作步骤说明 (3) 5.1安装前环境说明 (3) 5.2下载 (3) 5.3Redis 介绍 (4) 5.4解压 (5) 5.5编译及安装 (5) 5.6配置 (6) 5.7设置环境变量 (6) 5.8启动、停止重新加载Redis配置 (6) 5.8.1启动Redis服务器 (8) 5.8.2停止Redis (9) 5.8.3连接Redis (9) 5.9redis常用命令详解 (9) 5.9.1redis-benchmark (9) 5.9.2redis-server (10) 5.9.3redis-cli (11) 5.9.4redis-check-aof (11) 5.9.5redis-check-dump (11) 5.9.6查看、删除key信息 (12) 5.9.7获取服务器的信息和统计 (12) 5.9.8Redis的query分析 (13) 5.10创建主从服务器 (15) 5.10.1配置主从服务器 (15) 5.10.2备份服务器方案 (17) 6FAQ (17)

6.1Redis编译失败怎么办 (17) 6.2Redis启动失败 (17) 6.3Redis虚拟内存无法启动 (17) 6.4升级安装前没有停止已经运行Redis进程,怎么处理 (18) 6.5Redis主从结构,主服务器宕机解决方法 (18) 6.6调整overcommit_memory参数 (18) 6.7安装tcmalloc包 (18) 7Redis配置说明 (19) 8参考文献 (29)

redis在JAVA中使用

Redis 一、Redis介绍 什么是Redis? redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash (哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 它有什么特点? (1)Redis数据库完全在内存中,使用磁盘仅用于持久性。 (2)相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。 (3)Redis可以将数据复制到任意数量的从服务器。 Redis 优势? (1)异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。(2)支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列表,集合,有序集合,散列数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以处理通过它的数据类型更好。 (3)操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。

(4)多功能实用工具:Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数等。 Redis 缺点? (1)单线程 (2)耗内存 二、使用实例 spring把专门的数据操作独立封装在spring-data系列中,spring-data-redis自然是针对Redis的独立封装了。 主要是将jedis、jredis、rjc以及srp等Redis Client进行了封装,同时支持事务。 1、引入相关jar包(连接池不做考虑) 1. 2. 3.org.springframework.data 4.spring-data-redis 5.1. 6.1.RELEASE 6. 7. 8.redis.clients 9.jedis 10.2.7.3 11. 12. 2、配置bean

Spring-data-redis使用手册

Spring-data-redis使用手册

文档信息(Document Info) 标题(Title) Spring-data-redis使用手册 文档编号(No) 2012-02-14 作者(Author) 黄承开 最后发布时间(Last Update) 2012-08-10 概述(Summarize) 掌握spring-data-redis的使用方法,一些最佳实践

修订信息(Revise Info) 修订日期(Date)修订人(Reviser) 修订内容(Revises) 2012-05-21 梁国锋 2.2 redis下载地址(Linux版、Windows版) 3.4.6常用api的方法 5.1mercury项目实战 2012-06-25 黄承开新增maven依赖配置方法,整理了章节2012-06-26 黄承开新增章节 2012-08-10 张瑜新增Tinybee实战配置,增加KEY序列化配置

附件信息(Attachment Info)

目录 文档信息(Document Info) (2) 修订信息(Revise Info) (3) 附件信息(Attachment Info) (4) 1.概述 (6) 1.1.目的 (6) 1.2.范围 (6) 2.准备 (6) 2.1.环境配置 (6) 2.2.下载地址 (7) 3.Spring-data-redis (7) 3.1.背景 (7) 3.1.1.高级API (7) 3.1.2.低级API (7) 3.2.Maven配置 (7) 3.3.JedisConnectionFactory (8) 3.4.RedisTemplate和StringRedisTemplate (8) 3.5.API概览 (8) 3.5.1.Java集合和Redis集合 (8) 3.5.2.Operations (9) 3.5.3.ValueOperations和BoundValueOperations (9) 3.5.4.ListOperations和BoundListOperations (9) 3.5.5.SetOperations和BoundSetOperations (10) 3.5.6.ZSetOperations和BoundZSetOperations (11) 3.5.7.HashOperations和BoundHashOperations (11) 3.5.8.其他 (12) 3.6.Callback (12) 3.7.Topic和Messaging/PubSub (12) 3.8.Cache (12) 4.NoSQL数据库设计 (12) 4.1.一般经验 (12) 4.1.1.不持久化业务实体 (12) 4.1.2.Key的设计 (12) 4.2.官方例子中的设计 (13) 4.3.NoSQL 数据建模技术 (13) 5.最佳实践 (13) 5.1.项目案例1(Mercury项目) (13) 5.1.1.配置 (13) 5.1.2.总结 (14) 5.2.项目案例2(Tinybee项目) (14) 5.2.1.配置(更新) (14)

Redis 集群应用学习

集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节点,来降低单节点服务器的压力。 上一篇我们讲到了Redis 的主从复制技术,当实现了多节点的master-slave 后,我们 也可以把它叫做集群,但我们今天要讲的集群主要是利用切片技术来组建的集群。 集群要实现的目的是要将不同的key 分散放置到不同的redis 节点,这里我们需要一个 规则或者算法,通常的做法是获取key 的哈希值,然后根据节点数来求模,但这种做法有其明显的弊端,当我们需要增加或减少一个节点时,会造成大量的key 无法命中,这种比例是相当高的,所以就有人提出了一致性哈希的概念。 一致性哈希有四个重要特征: 均衡性:也有人把它定义为平衡性,是指哈希的结果能够尽可能分布到所有的节点中去,这样可以有效的利用每个节点上的资源。 单调性:对于单调性有很多翻译让我非常的不解,而我想要的是当节点数量变化时哈希的结果应尽可能的保护已分配的内容不会被重新分派到新的节点。 分散性和负载:这两个其实是差不多的意思,就是要求一致性哈希算法对key 哈希应尽可能的避免重复。 但一致性哈希不是我们今天要介绍的重点,因为Redis 引入另一种哈希槽(hash slot) 的概念。 Redis 集群中内置了16384 个哈希槽,当需要在Redis 集群中放置一个key-value 时,redis 先对key 使用crc16 算法算出一个结果,然后把结果对16384 求余数,这样每个key 都会对应一个编号在0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。 使用哈希槽的好处就在于可以方便的添加或移除节点。 当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了; 当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了; 内部机制,与我何干,对于我们来说,在新增或移除节点的时候不要让我们先停掉所有的redis 服务我就谢天谢地了,这点它做到了。 下面我们就开始动手搭建一个redis 集群来体验一下。 因为我们要启动多个redis 实例,虽然我们可以直接通过命令行来启动,但始终是不怎么方便的,所以我们先来新建三个实例目录,分别是9001,9002,9003,目录名就是redis 实例的端口号。

Redis 使用的常见误区(案例分析)

Redis 使用的常见误区(案例分析) 在一个炎热的夏天,引爆了埋藏已久的大炸弹。本文作者从实际案例出发讲解Redis 使用的误区。 案例一:一个产品线开发人员搭建起了一套庞大的价格存储系统,底层是关系型数据库,只用来处理一些事务性的操作和存放一些基础数据。 在关系型数据库的上面还有一套MongoDB,因为MongoDB 的文档型数据结构,让他们用起来很顺手,同时也可以支撑一定量的并发。 在大部分的情况下,一次大数据量的计算后结果可以重用但会出现细节数据的频繁更新,所以他们又在MongoDB 上搭建了一层Redis 的缓存。 这样就形成了数据库MongoDBRedis三级的方式,方案本身先不评价不是本文重点,我们来看Redis 这层的情况。 由于数据量巨大,所以需要200GB 的Redis,并且在真实的调用过程中,Redis 是请求量最大的点。 当然如果Redis 有故障时,也会有备用方案,从后面的MongoDB 和数据库中重新加载数据到Redis,就是这么一套简单的方案上线了。 当这个系统刚开始运行的时候,一切都还安好,只是运维同学有点傻眼了,200GB 的Redis 单服务器去做,它的故障可能性太大了。 所以大家建议将它分片,没分不知道,一分吓一跳,各种类型用的太多了,特别是里面还有一些类似消息队列使用的场景。 由于开发同学对Redis 使用的注意点关注不够,一味的滥用,一锤了事,所以让事情变的困难了。 有些侥幸不死的想法是会传染,这时的每个人都心存侥幸,懒惰心理,都想着:这个应该没事,以后再说吧,先做个主从,挂了就起从,这种侥幸也是对Redis 的虚伪的信心,无知者无畏。 可惜事情往往就是怕什么来什么,在大家快乐的放肆使用时,系统中重要的节点

Redis中文入门手册

Redis中文入门手册1.0 中国海事服务网(https://www.doczj.com/doc/cd13287089.html,) zhangli收集整理

目录 1)Redis简介 (3) 2)数据类型 (3) 2.1.Redis的Key (3) 2.1.1.key相关指令介绍 (3) 2.2.Redis的vaule (3) 2.2.1.string类型 (3) 2.2.2.hash类型 (4) 2.2.3.list类型 (5) 2.2.4.set类型 (5) 2.2.5.sorted set类型 (6) 3)持久化 (7) 3.1.快照方式:(默认持久化方式) (7) 3.2.日志追加方式: (7) 4)虚拟内存(适用于value比key大的情况) (8) 4.1.Redis虚拟内存简介 (8) 4.2.Redis虚拟内存相关配置 (8) 4.3.redis虚拟内存工作方式简介 (9) 4.3.1.当vm-max-threads设为0时(阻塞方式) (9) 4.3.2.当vm-max-threads大于0时(工作线程方式) (9) 5)主从同步 (9) 5.1.Redis主从复制简介 (9) 5.2.Redis主从复制的过程介绍 (10) 附录A:redis的安装与配置 (10) 1.1.安装 (10) 1.1.1.编译安装 (10) 1.1.2.配置 (11) 1.1.3.启动redis (11) 1.1.4.关闭redis (11) 1.1.5.更新安装redis (12) 1.1.6.redis系统管理相关指令简介 (12) 附录B:安装phpredis模块 (12) 参考资料与知识扩展 (13)

相关主题
文本预览
相关文档 最新文档