Redis在Windows上的使用

2023-05-16

Redis在Windows上的使用

  • 安装
  • Redis可视化工具
  • Redis的主从复制
  • 遇到的问题

安装

下载地址: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:\redis 运行 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可视化工具

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 修改为: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())

{

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis在Windows上的使用 的相关文章

  • 如何使文件自我更新(Native C++)

    我将 Microsoft Visual Studio 2008 与 Windows 目标部署结合使用 我如何使文件 自我更新 我已经完成了 通过网络传输 部分 但是如何使可执行文件重写自身 基本上 我想为还包含自动更新程序的目录编写一个自动
  • Windows 上的 ruby​​ 中出现 SSL 错误

    我收到以下错误 C Users user Desktop folder gt ruby exchange rate rb C Ruby23 x64 lib ruby 2 3 0 net http rb 933 in connect nonb
  • 如何正确调用 LsaLogonUser 进行交互式登录?

    我正在尝试使用 LsaLogonUser 创建交互式登录会话 但它总是返回STATUS INVALID INFO CLASS 0xc0000003 从网上查到的内存布局KERB INTERACTIVE LOGON结构很棘手 但我很确定我做得
  • IllegalComponentStateException 在 jtabbedpane 内的 jtextfield 中更改语言时

    今天 当我创建 JTabbedPane 时 我注意到一个奇怪的 在我看来 错误 这没有任何意义 而且因为我寻找这个超过 2 小时 所以在网上找不到任何东西 看看这个 import java awt BorderLayout import j
  • 找出用户属于哪些组

    我有一个刚刚创建的 Windows 用户帐户 以 XYZ 为例 此 XYZ 属于我在计算机管理 gt 本地用户和组中创建的用户组和自定义组 因此 在属性中我看到该用户属于 2 个组 现在我想获取这些组并显示它们 有什么建议么 我已经这样做了
  • 如何在 Windows 上以编程方式将 SVG 转换为 PDF?

    我希望在服务器上以编程方式将 SVG 转换为 PDF 文档 在 Windows 上执行此操作有哪些选项 我看过链接Inkscape http www inkscape org Batik http xmlgraphics apache or
  • 强制 Java 最低版本以“java -version:”运行在 Windows 上不起作用

    我想强制应用程序运行的 JVM 最低版本为 1 6 或更高版本 即 1 6 我的理解是 您可以使用 version 命令行参数来执行此操作 我尝试了一下 在Linux下似乎可以正常工作 但在Windows下却不行 LINUX 我在 Linu
  • WinSock.h 和 WinSock2.h 使用哪个?

    有谁知道 WinSock h 和 WinSock2 h 之间的区别 我知道它们不使用相同的库 lib 但我不知道 WinSock2 是否仅添加了新功能 或者是否还改进了 WinSock 1 功能 我正在使用 IP TCP 套接字 并希望使用
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • WHQL认证过程有多痛苦?

    您能估计一下 WHQL Windows 硬件徽标 认证过程有多痛苦吗 我看到有一个 43 页的分步指南 其中第一步是安装 Windows Server 2008 R2 x64 提交之前完成整个准备过程大约需要多长时间 然后需要多长时间才能得
  • 如何在 Windows 上设置 Node.js 的工作目录?

    我刚刚安装了 Windows 版的 Node js 运行它真的是轻而易举 我想将它用作构建过程的一部分 将多个文件组合在一起 如下所示 settings var FILE ENCODING utf 8 EOL n DIST FILE PAT
  • .NET 4.0 是否与 Windows XP SP2 或更低版本兼容? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过这里http www microsoft com downloads en details aspx FamilyID 5765
  • 如何从 Windows 反编译 Linux 二进制文件?

    如何从 Windows 反编译 Linux 二进制文件 so 谢谢 你可以试试回旋镖 http boomerang sourceforge net 您需要首先从源代码构建它 因为提供的二进制文件不涵盖这种情况 如果您绝对拒绝编译任何内容 请
  • npm 在 Windows 中不被识别为内部或外部命令

    当我尝试跑步时npm install在 Windows 上 我收到以下错误 怎样才能摆脱它呢 D Xampp htdocs laravelchat gt npm install CALL C Program Files nodejs nod
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • 如何在多个文件上调用动词

    我想使用 PowerShell 在多个文件上调用打印动词 在 Windows 资源管理器中 我可以进入一个文件夹 选择多个文件 右键单击并选择打印选项 这将打开 打印图片 对话框 其中包含所有选定的文件 我可以使用以下方法对一个文件执行此操
  • 如何使用 Windows 上运行的 Java 服务检测用户活动?

    我的目标是使用 Java 创建一个系统监控应用程序 我想知道用户何时在 Windows PC 上进行活动 结果会是这样的 8 00 8 15 活动 9 12 10 29 活动 12 24 15 34 活动 我对任何其他信息 按下了哪个键 使
  • Redis - 密钥消失

    Redis 中的键是否可能无故消失 我正在向 redis 添加密钥 Transaction transaction jedis multi transaction incrBy positionsQuantityKey positionQu
  • 防止单个可执行文件的多个进程实例

    我正在使用 NET 和 C 我想阻止同一可执行文件的两个实例同时运行 但我不想阻止从另一个文件夹运行的同一进程 例如 我有一个位于两个不同位置的可执行文件 C MyProject Master Program exe C MyProject
  • powershell脚本创建Windows 10通知并在弹出后消失

    以下 powershell 脚本成功创建了一个通知 但在小弹出窗口收回后 它不会显示在通知中心上 有什么方法可以将其保留在通知中心直到用户关闭它吗 param String prodName Windows UI Notifications

随机推荐

  • 基于51单片机+DHT11温湿度模块+ESP8266模块+上传oneNET APP显示+LCD1602显示

    基于51单片机 43 ESP8266上传oneNET平台 APP显示 基本介绍器件51单片机ESP8266DHT11温湿度usb ttl模块 实现思路实现步骤1 xff1a 注册oneNET平台2 xff1a 测试ESP8266是否正常3
  • 基于STM32F103入门1——点亮LED灯

    今天学习了STM32固件库点灯程序 点灯也可以玩过很多好玩的东西 xff0c 在这里做一下总结 STM32点灯程序合集 1 xff1a 新建固件库工程文件1 1找到一个固件库模板1 2 xff1a 打开KEIL5新建工程1 3 xff1a
  • 基于51单片机+DS1302时钟模块+LCD1602显示

    DS1302时钟模块LCD1602显示 DS1302时钟模块相关介绍基本介绍概述特点各引脚功能相关寄存器 时序图单字节写时序单字节读时序时钟 日历多字节 xff08 Burst xff09 方式 代码main clcd1602 cds130
  • 基于STM32F103入门3——外部中断

    STM32F103外部中断 外部中断基本概念框图功能说明 外部中断的配置代码编写步骤 外部中断例程main cled cexti c效果展示 外部中断 基本概念 CPU在处理某一事件A时 xff0c 发生了另一事件B请求CPU迅速去处理 x
  • 基于51单片机+DS1302万年历+LCD1602显示+按键播报时间+温控风扇+按键控灯

    基于51单片机万年历 准备硬件功能介绍修改时间修改日期 xff08 并且校正星期 xff09 闹钟模式调节灯模式调节风扇模式按键播报时间温度控制风扇主程序代码 项目演示 前段时间做了一个 基于51单片机的万年历加温度控制风扇以及按键播报时间
  • Linux json-c 安装和使用

    json c安装和使用 json c一 安装 json c1 命令安装2 下载源码安装 二 使用 json c1 测试是否安装成功2 json c 基本介绍1 json type2 json object new object 3 json
  • Linux NFS服务

    一 NFS服务安装 1 主机相关操作 如果嫌弃麻烦 xff0c 在文章最后有代码 xff0c 可以直接拿去跑 安装NFS服务 Ubuntu系统默认没有安装NFS服务 xff0c 需要使用如下命令安装NFS服务端软件 pikaqiu 64 u
  • C++执行命令行并获取输出

    C 43 43 执行CommandLine 前言1 执行操作2 读取操作fgets读取getline读取fread读取 前言 在程序开发中 xff0c 经常需要通过执行命令行操作来拿到一些系统信息 xff0c 比如获取进程信息 xff0c
  • 基于STM32F103——XGZP6847D压力传感器+串口打印

    基于STM32F103 XGZP6847D压力传感器 43 串口打印 基本介绍概述产品特点引脚的连接 IIC通信 名称含义的介绍I2C通信协议 设备地址是 96 0x6D 96 寄存器描述 工作模式寄存器Reg0x30 xff08 测量命令
  • Ubuntu18.04.6 通过自编译的方式指定mysql5.7安装目录(有网络)

    下载mysql包 https dev mysql com downloads mysql 5 7 html downloads 或者百度网盘下载 链接 xff1a https pan baidu com s 1ZiWdrSWT4qLa6C1
  • 虚拟机VMware改为桥接模式(Ubuntu)操作以及修改后右上角没有网络图标解决方法。

    虚拟机有三种联网方式 xff0c 分别为桥接模式 nat模式和仅主机模式 xff0c 其中桥接模式是指与主机在同一网段即与主机ip地址在同一网段 xff0c 相当于主机和虚拟主机插在同一个路由器中 xff0c 假如这主机ip为192 168
  • 配置Github、Gitee共存的Git环境,测试连接成功

    已安装过git xff0c 需清除 git 的全局设置 xff0c 若无则跳过该步骤 之前git设置过全局的 user name 和 user email 用 git config global list在终端进行查看你是否设置 若已设置则
  • 阿里云网站备案-注销备案的办法

    当我们因为各种原因要注销备案时 xff0c 可能会遇到以下这些问题 那么本文汇总了相关答案 xff0c 并且列出来给大家参考用 1 注销主体与注销网站的区别 网站备案分成两部分 xff0c 一部分是备案主体 xff08 个人或企事业单位 x
  • Linux安装pycharm(照着做就行)

    pycharm是Python语言的图形化开发工具 因为如果在Linux环境下的Python shell 中直接进行编程 xff0c 其无法保存与修改 xff0c 在大型项目当中这是很不方便的 而pycharm的安装 xff0c 刚好就解决了
  • 魔百盒m401a安装homeassistant(supervioser)

    安装 Docker CE准备 xff1a 1 U盘 2 刷机工具 balenaEtcher 下载地址 xff1a https www balena io etcher 3 armbian镜像 xff08 镜像下载地址 xff1a https
  • Win10下Anaconda+Tensorflow安装

    目录 前言一 安装Anaconda1 下载2 安装3 检验 二 环境配置1 新建环境2 检验 三 安装Tensorflow1 安装2 测试及debug 总结 前言 最近入手深度学习 xff0c 需要安装tensorflow库 xff0c 在
  • [嵌入式]STM32的C和汇编语言混合编程

    文章目录 一 Keil下C语言调用汇编程序二 将原汇编语言 Init 1函数的类型改为 int Init 1 init xff0c 此函数功能修改为 传入一个整型数x xff0c 函数运行后返回整型数 x 43 100 1 C语言调用函数传
  • python win32.com对excel的基本操作

    前言 python对于excel的操作有很多库 xff0c 我也尝试了很多 xff0c 例如openpyxl xff0c xlrd xlwt xff0c win32 com 现在先和大家说一下我遇到的坑 openpyxl 调用这个库的打开e
  • 在linux中安装arm-linux-gcc

    1 下载amr linux gcc 4 4 3 xff1a https download csdn net download ddffyhg 11001833 2 解压命令tar xvzf arm linux gcc 4 4 3 C 自动解
  • Redis在Windows上的使用

    Redis在Windows上的使用 安装Redis可视化工具Redis的主从复制遇到的问题 安装 下载地址 xff1a https github com MSOpenTech redis releases Redis 支持 32 位和 64