本文转自:http://www.cnblogs.com/gossip/p/4898653.html

一、先谈谈单个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__WindowsServer主从服务部署及调用实例的更多相关文章

  1. Redis主从服务部署

    Redis__WindowsServer主从服务部署及调用实例       一.先谈谈单个Redis服务的安装         使用的redis是2.8.17版本,从官网下载解压缩后文件内容为:   ...

  2. 【JMicro】微服务部署架构及实例

    序言 JMicro是一个用Java语言实现的开源微服务全家桶,源码地址:https://github.com/mynewworldyyl/jmicro,Demo地址:http://124.70.152 ...

  3. Linux获取本机公网IP,调整双节点主从服务的RPC调用逻辑

    简单记录一次双节点的之间的服务调用叭 ~ 现有: 服务A的双节点A1.A2 服务B的双节点B1.B2 服务A 和服务B 通过 Netty 实现 RPC 通信,可能会导致比较玄学的问题.如图: 要做到 ...

  4. DNS主从服务部署

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

  5. C#中WebService的创建、部署和调用的简单实例

    webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice的例子. 一:WebService的创建开发 先新建一 ...

  6. .Net 与 Java 的服务接口相互调用

    本文介绍.Net 与 Java 相互调用的例子.下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是使用Remote实现远程对象相互调用. 首先说 ...

  7. mongodb 简单部署方案及实例

    mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb  我这里选用rehl 5.6 ...

  8. Chris Richardson微服务翻译:微服务部署

    Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服务部署( ...

  9. 服务部署到Swarm Cluster中

    对于已存在的镜像,将其部署到服务器中并开始对外服务,便是它的职责,而我们要做的便是帮助它完成职责,前两个应用环节都已产生了相应的镜像,在这一环节,将完成服务部署到容器集群的工作,对于这一过程,实际执行 ...

随机推荐

  1. grunt-replace和grunt-include-replace问题

    关于最近在做的项目要用到的grunt-replace和grunt-include-replace,百度上很多将grunt的压缩合并的教程,可是很少讲关于这两个插件的教程,不过官网上有教程,我就是按照官 ...

  2. java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)

    标题有点问题,没有进行修改. 一 Discuz论坛搭建步骤 1:服务器环境配置 服务器要支持php语言+支持mysql 5.0以上的数据库 + Apache服务器(支持网站的一个服务器,通过域名的能访 ...

  3. mysql Blob存取的一个简单例子

    一.得到mysql的连接 这里封装成一个方法,方便后面使用. public Connection getConnection() throws Exception{ String url = &quo ...

  4. T4模板之初体验(语法)

    一.什么是T4模板 T4是Text Template Transformation Toolkit(文本模板转换工具包)的四个英文首字母的简称.是微软提供的一种代码生成引擎. 在ADO.NET实体数据 ...

  5. 第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析

    今天学业习了上下文界定的内容,看下这段代码 class Pair_Ordering[T:Ordering](val first : T,val second : T){  def bigger(imp ...

  6. Servlet的几种跳转(转)

    源地址:http://hi.baidu.com/awmtaplnaibmnxq/item/29d76f3dafcf00312e20c482 Servlet: 当然,在servlet中,一般跳转都发生在 ...

  7. linux-7 man 命令

    man  命令的分类 man 命令 代码 代表内容 普通命令 内核调用的函数与工具 常见的函数与函数库 设备文件的说明 配置文件 游戏 惯例与协议 管理员可使用的命令 内核相关的文件 一般来讲帮助文档 ...

  8. 笔记:Hyper-V上Centos 6.5分辨率调整问题解决笔记

    最近忙的没有心情写东西,果然博客就这么长草了.今天就稍微写一点点东西吧,反正这问题挺烦的. 背景如下:为准备做redis集群实验,特在笔记本上搭建CentOS6.5的Hyper-V虚拟机. 虚拟机创建 ...

  9. 跟我一起学WCF(1)——MSMQ消息队列

    一.引言 Windows Communication Foundation(WCF)是Microsoft为构建面向服务的应用程序而提供的统一编程模型,该服务模型提供了支持松散耦合和版本管理的序列化功能 ...

  10. SRS文档 王倩倩 201303014004

    设计阶段 Spec 图书管理系统functional spec:软件功能说明书, 主要用来说明软件的外部功能, 和用户的交互情况 (把软件当作一个黑盒子).从用户的角度描述软件产品的功能, 输入,输出 ...