• Redis在Windows上的使用


    安装

    下载地址:https://github.com/MSOpenTech/redis/releases

    Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis

    解压后文件:

    redis-benchmark.exe   基准测试

    redis-check-aof.exe      aof

    redischeck-dump.exe    dump

    redis-cli.exe                 客户端

    redis-server.exe          服务器

    redis.windows.conf     配置文件

    注意:《Redis-x64-3.2.100.msi》同样是redis服务端,可以代替redis-server.exe,安装后以服务形式启动,然后用自带客户端工具检测。

    1、服务端:

    打开一个 cmd 窗口 使用cd命令切换目录到 C: edis 运行 redis-server.exe redis.windows.conf 。

    如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

    Redis 安装

     默认端口为6379,出现这个界面说明启动成功。

    如果要以服务形式启动,则

    redis-server --service-install redis.windows.conf --loglevel verbose  --service-name 服务名称

    卸载服务命令:redis-server.exe --service-uninstall  

     2、客户端:

    用自带客户端redis-cli.exe检测。双击,连接成功。

    运行 redis-cli.exe -h 127.0.0.1 -p 6379 。

    设置键值对 set myKey abc

    取出键值对 get myKey

    Redis 安装

     3、redis服务密码:

    设置redis的密码:找到# requirepass foobared 改为 requirepass 我的密码 ,本机测试可不设置。

    默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。

    设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。

    127.0.0.1:6379>auth  xxx

    附:Redis配置文件全解

    Redis可视化工具

    RedisDesktopManager一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。

    下载软件,请点击下面链接,进入下载页,选择对应版本:https://redisdesktop.com/download

    操作使用如下图:

        一、新建连接

    输入redis主机host,端口号port,再起个生动形象,简明达意的别名。

    二、该工具支持根据筛选条件查询key,add new key,reload等。

    三、支持常用redis操作

    针对目标key执行rename,delete,addrow,reload value操作。

     四、命令控制台操作

     该工具提供命令控制台:

    Redis的主从复制

    Redis跟MySQL一样,拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强大的多级服务器集群架构。

    redis的主从复制是异步进行的,它不会影响master的运行,所以不会降低redis的处理性能。主从架构中,可以考虑关闭Master的数据持久化功能,只让Slave进行持久化,这样可以提高主服务器的处理性能。同时Slave为只读模式,这样可以避免Slave缓存的数据被误修改。

    1、配置

    实际生产中,主从架构是在几个不同服务器上安装相应的Redis服务。为了测试方便,我这边的主从备份的配置,都是在我Windows 本机上测试。

    在本机window下安装三个redis实例,其中主服务端口6379,从服务slave1为6380,从服务slave2为6381.

    1.当前已安装并启动了主服务器,复制两份主服务的解压目录分别命名为Redis-salve1和Redis-salve2.如下图:

    2.配置从服务器

    分别配置两个配置文件(两个文件需要配置的内容相同,以redis.windows.conf为例):

    改端口port为 6380和6381

    在Slave 实例 ,# slaveof <masterip> <masterport>   修改为:slaveof 127.0.0.1 6379 配置。

    3、分别启动主从服务    redis-server.exe redis.windows.conf 

    【这里指演示 一个从服务器6380】

    注意,如果设置了密码的话,从服务器中需要在requirepass  xxxx 后加一行: masterauth xxxx

    masterauth  是主从认证密码,否则主从不能同步

    4、安转为服务启动:

    切换到各自目录下,输入命令:redis-server --service-install redis.windows.conf --loglevel verbose  --service-name 服务名称

    5、打开服务,启动两个从服务并设置为自动启动

    2、测试

    在主服务下,用server-cli输入设置值,

    redis-cli.exe -h 127.0.0.1 -p 6379

    在从服务下,获取。

    redis-cli.exe -h 127.0.0.1 -p 6380

    3、C#中调用

    主从架构的Redis的读写其实和单台Redis 的读写差不多,只是部分配置和读取区分了主从。

    需要注意的是:ServiceStack.Redis 中GetClient()方法,只能拿到Master redis中获取连接,而拿不到slave 的readonly连接。这样 slave起到了冗余备份的作用,读的功能没有发挥出来,如果并发请求太多的话,则Redis的性能会有影响。

    所以,我们需要的写入和读取的时候做一个区分,写入的时候,调用client.GetClient() 来获取writeHosts的Master的redis 链接。读取,则调用client.GetReadOnlyClient()来获取的readonlyHost的 Slave的redis链接。

       或者可以直接使用client.GetCacheClient() 来获取一个连接,他会在写的时候调用GetClient获取连接,读的时候调用GetReadOnlyClient获取连接,这样可以做到读写分离,从而利用redis的主从复制功能。

    遇到的问题

    1、Redis 服务无法启动,错误 1067 进程意外终止

    可以看下服务属性,如果是网络服务,修改为本地系统服务即可启动!

    【有可能的情况是 其他应用安装了此服务导致,eg,docker】

    修改为本地服务

    2、**System.TimeoutException:** 'Redis Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use.

    翻译:Redis超时已过期。 从池中获取连接之前已经过超时时间, 这可能是因为所有池化连接都在使用中。

    可能的原因:

    连接没有及时释放

    eg:var r = pool.GetClient(); 改为

    using (var r = pool.GetClient())

    {

    }

  • 相关阅读:
    由剑指offer引发的思考——对象中虚函数指针的大小
    lambda表达式在python和c++中的异同
    并发编程(9)线程池---高级线程管理
    并发编程(8)并发算法代码设计
    并发编程(6)基于锁的并发数据结构设计
    并发编程(4)同步并发操作
    并发编程(3)线程间共享数据
    并发编程(2)线程管理
    并发编程(1)简介
    C#中string 和String
  • 原文地址:https://www.cnblogs.com/peterYong/p/9652336.html
Copyright © 2020-2023  润新知