Redis__WindowsServer主从服务部署及调用实例

 
 
 
一、先谈谈单个Redis服务的安装
        使用的redis是2.8.17版本,从官网下载解压缩后文件内容为:
         
            安装并启动一个redis服务很简单,步骤如下:
            1、配置日志文件目录:只用修改logfile定位到Log文件夹下
                 
            2、命令行定位到解压文件的目录
                  cd /d D:\MasterRedis-2.8.17     (windows 7)
                  cd /d D:\SlaveRedis-2.8.17       (windows server)
            3、安装Redis:redis-server --service-install redis.windows.conf --loglevel verbose
            4、启动Redis:redis-server --service-start
            5、停止Redis:redis-server --service-stop
            6、卸载Redis:redis-server --service-uninstall 
 
 
二、再谈谈结论
        经过半天的折腾,结论就是:Success!过程我下面再谈,结论就是在单台windows servers机器上部署主从服务,第二个redis示例始终启动不了(写这篇文章的时候解决了),在两个不同的服务器上部署也可以成功

 
三、谈谈过程
      1、本来想安装部署单个Redis的方式连续操作两遍,才发现第一次操作时已经启动了名称为Redis的服务,第二次操作时服务根本就安装不上去,解决的方法就是给Redis服务命名,命令如下:
       redis-server --service-install redis6379.windows.conf --loglevel verbose  --service-name Redis6379
       --service-name是服务名称,坑爹的是我在网上拷贝的命令只有一个横杠(-),半天得不到想要的结果(一个横岗也会创建名称为redis的服务)
       2、安装服务的时候加上了servicename,在服务启动、停止、卸载的时候也需要加上servicename参数
             1、服务启动:redis-server --service-start --service-name Redis6379 redis6379.windows.conf
             2、服务停止:redis-server --service-stop --service-name Redis6379 redis6379.windows.conf
             3、服务卸载:redis-server --service-uninstall --service-name Redis6379 redis6379.windows.conf
       3、最后在谈谈之前为什么主从服务都可以安装成功,但是启动一个服务后第二个服务始终无法启动的坑 
    事件查看器的消息如下:(不知所云啊!)
     
   
             坑就在安装服务的命令:
    redis-server --service-install --service-name Redis6379 redis6379.windows.conf --loglevel verbose (不OK)    
    redis-server --service-install redis6379.windows.conf --loglevel verbose  --service-name Redis6379 (OK) 
    看清楚了,就在于service-name参数的位置,在配置文件前不行,必须放在最后
 
五、谈谈配置文件的修改(redis.windows.conf)
       1、主Redis服务配置文件不用做修改
               可能这个地方需要修改,我没有做测试
       2、从Redis服务配置文件修改如下:
             1、 端口修改
             2、  目前来看这里不用做修改,注释即可
             3、 日志文件
              4、  指定主Redis服务的IP和端口
 
五、截个图说明结论(用的工具是RedisDesktopManager)
      1、RedisRemoteMaster为远程主机的主Redis

   2、RedisRemoteSlaver为远程主机的从Redis (可以看到开始主redis未设置abc时,返回的是null,设置后,返回了新值)
 
  
         3、RedisLocal为主机的从Redis(同2)
 
 
五、调用Redis代码
    1、配置主从服务器
          

 <appSettings>
<!--Redis写入服务器地址,可以添加多个服务器通过,分隔-->
<add key="ReadWriteHosts" value="192.168.1.100:6379" />
<!--Redis读服务器地址,可以添加多个服务器通过,分隔-->
<add key="ReadOnlyHosts" value="192.168.1.100:6380,127.0.0.1:6379" />
</appSettings>
     2、Redis初始化(RedisConfig.cs
 class RedisConfig
{
public static RedisClient Redis
{
get
{
return (RedisClient)reidsPools.GetClient();
}
} private static string[] hosts;
private static PooledRedisClientManager reidsPools;
static RedisConfig()
{
var readWriteHosts = ConfigurationManager.AppSettings["ReadWriteHosts"].Split(',');
var readOnlyHosts = ConfigurationManager.AppSettings["ReadOnlyHosts"].Split(','); reidsPools = new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig
{
MaxWritePoolSize = 100,//“写”链接池链接数
MaxReadPoolSize = 200,//“读”链接池链接数
AutoStart = true,
DefaultDb = 0
});
}
}
     3、Redis操作工具类(RedisHelper.cs)
   public class RedisHelper
{
/// <summary>
/// 获取值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <returns></returns>
public T Get<T>(string key)
{
using (var redis = RedisConfig.Redis)
{
return redis.Get<T>(key);
}
} /// <summary>
/// 设置值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool Set<T>(string key, T value)
{
using (var redis = RedisConfig.Redis)
{
return redis.Set<T>(key, value);
}
} /// <summary>
/// 设置值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool Set<T>(string key, T value, DateTime dt)
{
using (var redis = RedisConfig.Redis)
{
return redis.Set<T>(key, value, dt);
}
} }
     4、调用代码

  class Program
{
static void Main(string[] args)
{
var redis = new RedisHelper(); redis.Set<string>("aa", DateTime.Now.ToString()); var d = redis.Get<string>("aa");
}
}
 

Redis主从服务部署的更多相关文章

  1. Redis__WindowsServer主从服务部署及调用实例

    本文转自:http://www.cnblogs.com/gossip/p/4898653.html 一.先谈谈单个Redis服务的安装         使用的redis是2.8.17版本,从官网下载解 ...

  2. windows环境redis主从安装部署

    准备工作 下载windows环境redis,我下载的是2.4.5,解压,拷贝一主(master)两从(slaveof).主机端口使用6379,两从的端口分别为6380和6381, 我本地索性用6379 ...

  3. DNS主从服务部署

    (1)节点信息 console01 主DNS 192.168.80.3 192.168.10.3 console02 从DNS 192.168.80.4 192.168.10.4 (2)环境部署 # ...

  4. Redis主从架构搭建和哨兵模式(四)

    一主一从,往主节点去写,在从节点去读,可以读到,主从架构就搭建成功了 1.启用复制,部署slave node wget http://downloads.sourceforge.net/tcl/tcl ...

  5. nopCommerce 3.9 大波浪系列 之 使用部署在Docker中的Redis缓存主从服务

    一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...

  6. redis常用服务安装部署

    常用服务安装部署   学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环境: centos7 + vmware + xshell 即将登场的是: mysql(m ...

  7. redis主从集群搭建及容灾部署(哨兵sentinel)

    Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...

  8. windows下Redis 主从读写分离部署

    原文:windows下Redis 主从读写分离部署 1.可直接下载window下的运行文件(下面这个链接) 也可以浏览github 查看相应的版本说明文档 https://github.com/Ser ...

  9. puppet工作原理及部署redis主从篇

    一.简介 1.国际惯例什么是puppet puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统 ...

随机推荐

  1. (转)Android高性能编程(2)--延迟初始化

    上一篇文章,讲到了很多Android应用开发中需要注意的性能和内存方面的技巧.这一篇文章就是从smali指令级来分析性能优化和内存优化的问题. 如何解决界面启动时间开销大的问题 我们在编写Androi ...

  2. Linux 安装交叉编译工具链

    交叉编译工具链下载地址: 链接:http://pan.baidu.com/s/1dE7P9rb 密码:300i 声明:下面每一步中的“pwd”指令都是为了看清楚当前的目录,没有其他实际意义. 系统:u ...

  3. pidstat

    统计系统上的某个进程占用的磁盘读写 pidstat -d   -p   pidNumber  3 -d  表示磁盘设备 -p 指定pid 3 表示每三秒刷新一次结果

  4. c# HttpWebResponse 调用WebApi

    public static class WebApiCaller { public static string HttpPost(string url, string body) { try { // ...

  5. ubuntu下安装ros出现“无法下载-package.ros.org中某个包-校验和不符”的解决方法

    新安装的Ubuntu14.04,为了科研马上准备装ros indigo,却困难重重,一步一个坎. 比如说按照ros wiki里面一步一步来,当运行sudoapt-get update 然后出现下列情况 ...

  6. liunx基础(5)

    第十三单元 硬盘分区.格式化及文件系统的管理二 1. 文件系统的挂载与卸载(详见linux系统管理P406)1) 掌握挂载的定义:挂载指将一个设备(通常是存储设备)挂接到一个已存在的目录上.2) 掌握 ...

  7. 如何在已经安装好的Nginx上增加新模块

    学习资源: https://blog.csdn.net/dxm2025/article/details/41149865 https://blog.csdn.net/qq_36663951/artic ...

  8. 【转】Apache Jmeter发送post请求

    下面用Jmeter发送一个post请求, 对应的js代码如下: $("#register_a").click(function() { var name = $("#un ...

  9. 【转】学习使用Jmeter做压力测试(一)--压力测试基本概念

    一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行. 通过负载测试,确定在各种工作负载下 ...

  10. web.config 权限设置

    <system.web> <authorization> <!--未登陆用户不可以访问--> <deny users="?" /> ...