Window平台搭建Redis分布式缓存集群 (一)服务器搭建及性能测试

百度定义:Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型),为了保证效率,数据都是缓存在内存中。

区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

以前公司一直在使用ehcache缓存,但是随着业务增多和用户访问量的增多系统越来越不能满足实际需求,反映也越来越慢,缓存它的处理访问速度是读取磁盘的上千倍,觉的利用缓存可以解决系统反应慢的问题。因此打算搭建一个高性能的redis缓存服务器,让缓存从应用服务器中脱离出来单独搭建缓存服务器,如果系统依赖于这个缓存服务器那么就需要考虑服务器宕机情况的出现,需要弄一个缓存集群来避免这一状况发生。

看到有一句经典的话描述宕机情况的发生而不让用户感觉到,相当于给 “飞行的飞机换一个引擎” 还要让用户丝毫感觉不到飞机晃动,也就是说无论后台怎么变出现啥状况,对于用户界面前台用户体验要好。

在系统优化方案中一般首先要考虑缓存,其次再考虑其他瓶颈,这也是系统优化经验。

下面先看一下在两台window平台电脑上搭建的redis服务器。

Redis Linux和window集成最新版下载地址:http://pan.baidu.com/s/1dD1WmEd

结构图如下

1.下载解压,没什么好说的,在解压后的bin目录下有以下这些文件:

2.该服务器主要包括上面的文件,首先启动服务器,启动服务器时需要将redis.windows.conf服务器配置文件加载进行,可以在命令行输入如下命令(需要将该目录加到环境变量里面才起作用),我把它写在了一个bat脚本里面,直接点击可以启动服务:

3.执行,看到如下界面表示已经启动成功。

至此,这台电脑上redis服务器已安装好,IP地址为:192.168.24.82;默认端口:6379;

重复步骤,再在另一台电脑安一个服务器设置主从关系Master-slave:IP地址:192.168.24.39;端口:6379

4.为了安全首先给服务器枷锁,默认配置并没有设置密码任何一个用户都可以访问这个服务器,修改redis.windows.conf配置文件修改密码:找到如下行:

找到# requirepass foobared 去掉前面的注释#,并把foobared 替换为你自己的密码:lls

现在我们从本地ip为82的登录服务器试试,从本机登录输入命令调用客户端程序并输入密码:

5.
参数分别为IP、port、password,如果不输入密码将提示没有权限登录系统。从远程登录原理一样只不过输入的IP地址不同而已,在本机往缓存里面设存储值之后然后从另一台电脑可以取得该值。

这样就可以从任意电脑和客户端访问这台缓存服务器,这两台服务器之间还需要设置主从关系完成同步备份。

伸缩性考虑:

在缓存服务器集群中需要考虑服务器伸缩性即某一天缓存服务器不能够满足需求时,动态添加一台或者减少一台服务器对于现有的集群影响最小,影响越小表明伸缩性越好,不仅仅指缓存还有应用服务器集群、数据库服务器集群等都需要考虑这一问题。

 

性能测试

自带工具benchmark.exe,输入命令:benchmark -h 192.168.24.82 -p 6379 -c 1000 -n 100000。表示向服务器发送10万个请求,每次请求并发数为1000,结果如下:

====== PING_INLINE ======

100000 requests completed in 154.46 seconds

1000 parallel clients

3 bytes payload

keep alive: 1

647.43 requests per second

====== PING_INLINE ======

表示平均每秒处理647.43个并发请求,相当于每秒有60万用户请求,此电脑配置4G内存单核CUP,性能还是可以的。

PS:

在测试时大量的输出信息显示在cmd控制台,会覆盖以前的信息,其实我们可以将结果输出到txt文件在命令的后面加上一个符号即可,拿我们熟悉的命令举例:ipconfig all > D:text.txt,如此即可将结果输出到文件中。

后一篇博客将介绍如何搭建主从服务器以及通过java客户端同服务器交互。

时间: 2024-12-11 18:06:29

Window平台搭建Redis分布式缓存集群 (一)服务器搭建及性能测试的相关文章

大型网站技术架构,6网站的伸缩性架构之分布式缓存集群的伸缩性设计

和所有服务器都部署相同应用的应用服务器集群不同,分布式缓存服务器集群中不同的服务器中缓存的数据各不相同,缓存访问请求不可以在缓存服务器集群中的任意一台处理,必须先找到缓存有需要数据的服务器,然后才能访问. 这个特点制约了分布式缓存集群的伸缩性设计,因为新上线的缓存服务器没有缓存任何数据,而已下线的缓存服务器还缓存这网站的许多热点数据. 必须让新上线的缓存服务器对整个分布式缓存集群影响最小,也就是说新加入的缓存服务器应使整个缓存服务器集群中已经缓存的数据尽可能还被访问到,这是分布式缓存集群伸缩性设

超详细的 Redis Cluster 官方集群搭建指南

今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细. 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.openssl.org/source/openssl-1.0.2m.tar.gz $ tar -zxvf openssl-1.0.2m.tar.gz $ cd openssl-1.0.2m $ ./config

Redis进阶实践之十一 Redis的Cluster集群搭建

原文:Redis进阶实践之十一 Redis的Cluster集群搭建 一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的所涉及到的概念做深入的探讨.本文只是针对如何设置集群.测试和操作集群做了简述,并且从用户的角度描述了系统的行为,并不涉及Redis集群规范中所包含的细节.但是,本教程试图从最终用户的角度来解释有关Redis的Cluster集群的可用性和一致性的特点,并以简单易懂的方式讲解. 请注意,本教程需要使用Redis 3.0版本或更高版本. 如果您打算部署

搭建HA高可用集群

搭建HA高可用集群 一.搭建集群的准备环境 有三台机器,两台上装ricci,另外一台装luci Luci管理机:172.25.47.6 Ricci节点:172.25.47.4   172.25.47.5 Yum仓库: Yum仓库中要指向其他的一些包 注意:yum仓库一般是从Server目录中下载包,但是也有一些其他的包在其他的目录下,因此此次yum 源的配置会和以往不一样 Yum源中配置的是这几个模块: 防火墙方面: 永久关闭防火墙 Selinux方面: 由于这些套件是redhat自带的,所以可

Redis中sentinel集群的搭建和Jedis测试 图文教程[三]

在前两篇Redis中sentinel集群的搭建和Jedis测试 图文教程[一] 和Redis中sentinel集群的搭建和Jedis测试 图文教程[二] 中分别简述了Redis中sentinel集群的搭建和Java代码的Jedis测试. 这篇主要来简单分析一下Redis-sentinel集群的原理,根据追踪sentinel信息来完成Redis-sentinel集群测试中的详细的原理分析.包括master-slave各个中的sentinel信息的分析,failover过程,master宕机后的le

Redis缓存集群方案

由于单台Redis服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而Redis 3.0 beta1支持的集群功能还不适合生产环境的使用.于是为了获取更好的Redis缓存性能及可用性,很多公司都研发了Redis缓存集群方案.现对NetFlix.Twitter.国内的豌豆荚在缓存集群方面的解决方案进行一个汇总,以供读者参考,具体内容如下: 1.NetFlix对Dynamo的开源通用实现Dynomite Dynomite是NetF

Linux下Redis集群环境的搭建

一.安装redis(使用redis3.0版本) 1.需要gcc环境,如果没有执行命令安装gcc yum install gcc-c++ 2.下载redis3.0的源码包并上传至服务器 3.解压源码包 tar -zxvf redis-3.0.0.tar.gz 4.进入解压目录编译 make 5.安装redis make install PREFIX=/usr/local/redis 二.启动redis 1.从redis-3.0.0文件中复制redis-conf到redis的安装目录中 2.然后修改

Redis学习笔记(11)——Redis缓存集群方案

由于单台Redis服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而Redis 3.0 beta1支持的集群功能还不适合生产环境的使用.于是为了获取更好的Redis缓存性能及可用性,很多公司都研发了Redis缓存集群方案.现对NetFlix.Twitter.国内的豌豆荚在缓存集群方面的解决方案进行一个汇总,以供读者参考,具体内容如下: 1.NetFlix对Dynamo的开源通用实现Dynomite Dynomite是NetF

Redis3缓存集群(cluster)搭建

Redis3以后支持Cluster特性:1.节点自动发现:2.slave->master 选举,集群容错:3.Hot resharding:在线分片:4.进群管理:cluster xxx:5.基于配置(nodes-port.conf)的集群管理:6.ASK 转向/MOVED 转向机制. 集群搭建技术知识点 Redis服务端口:用于接收客户端连接或客户端请求命令的端口,如:9579. Redis集群通信端口:用于Redis内部更新交流状态的端口,为当前服务器端口+10000,如19579. Red