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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 本文转自:http://www.cnblogs.com/gossip/p/4898653.html   一、先谈谈单个Redis服务的安装         使用的redis是2.8.17版本,从官网下载解压缩后文件内容为:                       安装并启动一个red...

本文转自: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实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
NoSQL Redis 数据安全/隐私保护
Redis 最流行的图形化界面下载及使用超详细教程(带安装包)! redis windows客户端下载
文章提供了Redis最流行的图形化界面工具Another Redis Desktop Manager的下载及使用教程,包括如何下载、解压、连接Redis服务器以及使用控制台和查看数据类型详细信息。
179 6
Redis 最流行的图形化界面下载及使用超详细教程(带安装包)! redis windows客户端下载
|
2月前
|
NoSQL Redis 数据库
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
文章提供了Redis图形化界面工具的下载及使用教程,包括如何连接本地Redis服务器、操作键值对、查看日志和使用命令行等功能。
175 0
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
|
3月前
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
75 6
|
14天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
78 26
|
4月前
|
Kubernetes NoSQL Redis
k8s快速部署Redis单机
k8s快速部署Redis单机
|
1月前
|
监控 NoSQL 网络协议
【Azure Redis】部署在AKS中的应用,连接Redis高频率出现timeout问题
查看Redis状态,没有任何异常,服务没有更新,Service Load, CPU, Memory, Connect等指标均正常。在排除Redis端问题后,转向了AKS中。 开始调查AKS的网络状态。最终发现每次Redis客户端出现超时问题时,几乎都对应了AKS NAT Gateway的更新事件,而Redis服务端没有任何异常。因此,超时问题很可能是由于NAT Gateway更新事件导致TCP连接被重置。
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
59 4
|
2月前
|
NoSQL Linux Shell
Redis 的安装与部署(图文)
Redis 的安装与部署(图文)
|
2月前
|
NoSQL Redis 数据库
Redis Windows版下载,带安装包
文章提供了Windows版Redis的下载和安装指南,包括如何解压、启动Redis服务以及连接到Redis数据库。
1050 0
Redis Windows版下载,带安装包
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo