Windows版本下Redis安装与使用---详解

目录

1、下载Redis压缩包

2、解压到文件夹

3、启动Redis服务

4、打开Redis客户端进行连接

5、使用一些基础操作来测试

6、Redis常用的服务指令

7、C#项目使用redis

8、C#中使用StackExchange.Redis库操作Redis

9、执行 Redis 命令

10、常见报错和相关指令


1、下载Redis压缩包

这里我在GitHub中下载window用的 5.0 版本Redis-x64-5.0.14.1.zip。(可能得翻墙)

Releases · tporadowski/redis · GitHub

2、解压到文件夹

将下载的压缩包解压到指定的文件夹中,如:D:\Redis,内容如下:(你不一定是这个目录,只要出现这个页面中内容即可)

3、启动Redis服务


1.直接在Redis目录路径处输入cmd回车可以进入命令窗口,然后执行命令来启动服务

2.也可以打开cmd使用 cd 命令切换到redis所在的目录(先切到D盘,再切到指定目录下):    

可以打开cmd切换到redis所在的根目录:D:

使用 cd 命令切换到redis所在的目录:   cd D:\ProgramFiles\Redis\Redis-x64-5.0.14.

cd 切换目录命令示例:
 
例:C:          切换到C盘
 
例:D:          切换到D盘
 
例:cd D:\ProgramFiles\Redis\Redis-x64-5.0.14.1    进入指定目录下
 
例:cd..         返回上级目录

随后使用redis-server.exe redis.windows.conf命令来启动redis服务:

默认端口为6379,出现图上的图标说明redis服务启动成功。命令里面的 redis.windows.conf 可以省略,省略后,使用redis-server.exe命令会使用默认的配置。

为了方便,建议把Redis路径配置到系统变量Path值中,这样就省得再输路径了。(配置环境变量)

  1. 找到Path点击编辑
  2. 直接放绝对路径就行(注意事项,自己配置的绝对路径必须移动到最上面,不然可能不生效)

4、打开Redis客户端进行连接

我们使用redis-cli.exe命令来打开Redis客户端:(可以另外开一个cmd窗口)

redis-cli.exe -h 127.0.0.1 -p 6379

 

在命令中输入ping命令来检测redis服务器与redis客户端的连通性,返回PONG则说明连接成功了。

如果出现连接不成功,注意服务打开以后,另启一个 cmd 窗口到Redis所在的目录执行命令,原来的Redis启动窗口不要关闭,不然就无法访问服务端了。

如果连接成功,到此Redis的安装和部署也就完成了。

5、使用一些基础操作来测试

下面我们可以来进行一些基础操作来进行测试

Redis默认拥有16个数据库,初始默认使用0号库,在命令行中通过select命令将数据库切换到8号数据库:select 8

在命令中通过set命令设置键值,通过get命令取出键值:

在命令中通过shutdown命令来关闭redis服务:

在Redis服务启动的cmd窗口中会出现服务关闭的提醒,如下图:

6、Redis常用的服务指令


卸载服务:redis-server --service-uninstall

开启服务:redis-server --service-start

停止服务:redis-server --service-stop

---------------------------------------------------------------------------------------------------------------------------------

1.安装redis之后:
首次启动redis:在命令行窗口中输入 redis-server redis.windows.conf 启动redis(重新修改配置文件后,需要用此指令启动)

2.之后每天启动redis:(好像每天会开机自启redis,又或是只要没停止服务就一直开着)

开启redis服务:redis-server --service-start

停止redis服务:redis-server --service-stop

关闭redis:(关闭命令行窗口就是关闭 redis--不确定)


3.redis作为windows服务启动方式---(服务端)
受此安装启动:redis-server --service-install redis.windows.conf
启动服务:redis-server --service-start
停止服务:redis-server --service-stop

查看端口:netstat -ano | findstr :6379

4.redis客户端

启动服务端连接(redis未设置密码): redis-cli.exe

启动服务端连接(redis设置密码):  redis-cli -a Nengyy$123

基础指令:

         set key1 hello1   ---添加key value键值对

         get key1             ---通过key获取value值

         select 8             ---redis:默认拥有16个数据库,初始默认使用0号库,在命令行中通过select命令将数据库切换到8号数据库

例子:

7、C#项目使用redis

在C#中使用Redis库通常需要依赖StackExchange.Redis库

using System;
using StackExchange.Redis;

class Program
{
    static void Main()
    {
        // 创建连接到Redis服务器的连接Multiplexer
        ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("your_redis_server_address");

        // 获取数据库
        IDatabase db = redis.GetDatabase();

        // 存储数据
        db.StringSet("myKey", "Hello, Redis!");

        // 读取数据
        string value = db.StringGet("myKey");
        Console.WriteLine($"Value retrieved from Redis: {value}");

        // 示例:存储哈希表
        HashEntry[] hashEntries = { new HashEntry("field1", "value1"), new HashEntry("field2", "value2") };
        db.HashSet("myHash", hashEntries);

        // 示例:读取哈希表
        HashEntry[] retrievedHashEntries = db.HashGetAll("myHash");
        foreach (var entry in retrievedHashEntries)
        {
            Console.WriteLine($"Field: {entry.Name}, Value: {entry.Value}");
        }
    }
}

8、C#中使用StackExchange.Redis库操作Redis

--字符串 (String)
IDatabase db = redis.GetDatabase();

// 存储字符串
db.StringSet("myKey", "Hello, Redis!");

// 读取字符串
string value = db.StringGet("myKey");

--哈希表 (Hash)
IDatabase db = redis.GetDatabase();

// 存储哈希表
HashEntry[] hashEntries = { new HashEntry("field1", "value1"), new HashEntry("field2", "value2") };
db.HashSet("myHash", hashEntries);

// 读取哈希表
HashEntry[] retrievedHashEntries = db.HashGetAll("myHash");

--列表 (List)
IDatabase db = redis.GetDatabase();

// 存储列表
db.ListRightPush("myList", "item1");
db.ListRightPush("myList", "item2");

// 读取列表
string listItem = db.ListLeftPop("myList");

--集合 (Set)
IDatabase db = redis.GetDatabase();

// 存储集合
db.SetAdd("mySet", "member1");
db.SetAdd("mySet", "member2");

// 读取集合
bool isMember = db.SetContains("mySet", "member1");

--有序集合 (Sorted Set)
IDatabase db = redis.GetDatabase();

// 存储有序集合
db.SortedSetAdd("mySortedSet", "member1", 10.0);
db.SortedSetAdd("mySortedSet", "member2", 5.0);

// 读取有序集合
var sortedSetRange = db.SortedSetRangeByScore("mySortedSet", double.MinValue, double.MaxValue);

9、执行 Redis 命令

在C#中使用StackExchange.Redis库执行Redis命令,你可以通过IDatabase对象调用相应的方法。以下是一些基本的Redis命令执行示例:

--执行 SET 命令
IDatabase db = redis.GetDatabase();
db.StringSet("myKey", "Hello, Redis!");

--执行 GET 命令
IDatabase db = redis.GetDatabase();
string value = db.StringGet("myKey");

--执行 HSET 和 HGET 命令
IDatabase db = redis.GetDatabase();
db.HashSet("myHash", "field1", "value1");
string hashValue = db.HashGet("myHash", "field1");

--执行 LPUSH 和 LRANGE 命令
IDatabase db = redis.GetDatabase();
db.ListLeftPush("myList", "item1");
db.ListLeftPush("myList", "item2");
var listValues = db.ListRange("myList");

--执行 SADD 和 SMEMBERS 命令
IDatabase db = redis.GetDatabase();
db.SetAdd("mySet", "member1");
db.SetAdd("mySet", "member2");
var setMembers = db.SetMembers("mySet");

--执行 ZADD 和 ZRANGE 命令
IDatabase db = redis.GetDatabase();
db.SortedSetAdd("mySortedSet", "member1", 10.0);
db.SortedSetAdd("mySortedSet", "member2", 5.0);
var sortedSetRange = db.SortedSetRangeByScore("mySortedSet", double.MinValue, double.MaxValue);

10、常见报错和相关指令

6379端口被占用,导致redis无法正常启动

9、cmd指令查看关闭端口进程
1.利用 netstat -ano | findstr :6379 指令查看谁占用6379端口

(查看此端口是否被占用):netstat -ano | findstr :6379

2.查看该进程的详细信息:  tasklist /FI "PID eq 77416"
(该命令将显示 PID 为 77416 的进程的详细信息,包括进程名称、路径、状态等。根据这些信息,您可以确定哪个软件占用了 8888 端口。)

3.杀死占用端口的进程

(注意事项:文件目录下打开cmd进入时会缺少管理员权限 ,建议先用管理员权限打开cmd指令框,再cd到指定目录下)

taskkill /f /pid 30020

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/880975.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

翻页时钟 2.0-自动置顶显示,点击小时切换显示标题栏不显示标题栏-供大家学习研究参考

更新内容 自动置顶显示点击小时切换显示标题栏,(显示标题栏后可移动时钟位置,鼠标拖动边框调整时钟大小)不显示标题栏时,透明部分光标可穿透修正一个显示bu 下载地址: https://download.csdn.net/download…

技术美术百人计划 | 《4.5 DOF景深算法》笔记

1. 景深定义 景深(Depth of Field,DOF),是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。镜头光圈、镜头焦距、及焦平面到拍摄物的距离是影响景深的重要因素。在聚焦完成后,焦点…

基于SpringBoot的招生宣传管理系统【附源码】

基于SpringBoot的招生宣传管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统功能结构设计 4.3数据库设计 4.3.1数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1管理员功能介绍 5.1.1管理员登录 …

[数据集][目标检测]智慧交通铁路人员危险行为躺站坐检测数据集VOC+YOLO格式3766张4类别

图片数量(jpg文件个数):3766 标注数量(xml文件个数):3766 标注数量(txt文件个数):3766 标注类别数:4 标注类别名称:["sitting","sleeping","standing","track"] 每个类别标注的框数&…

半导体器件制造5G智能工厂数字孪生物联平台,推进制造业数字化转型

半导体器件制造行业作为高科技领域的核心驱动力,正积极探索和实践以5G智能工厂数字孪生平台为核心的新型制造模式。这一创新不仅极大地提升了生产效率与质量,更为制造业的未来发展绘制了一幅智能化、网络化的宏伟蓝图。 在半导体器件制造5G智能工厂中&a…

解决selenium爬虫被浏览器检测问题

文章目录 专栏导读1.问题解析2.代码解析(Edge/Chrome通用)2.1 设置Edge浏览器选项:2.2 尝试启用后台模式2.3 排除启用自动化模式的标志2.4 禁用自动化扩展2.5 设置用户代理2.6 实例化浏览器驱动对象并应用配置2.7 在页面加载时执行JavaScript代码 3.完整代码(可直接…

ETHERCAT转PROFIENT网关—迅捷伺服驱动器数据交互

在当前的生产现场中,PLC 控制器与迅捷伺服驱动器之间通过通讯方式进行连接的情况愈发频繁。有些现场中,控制器和伺服驱动器采用统一的通讯协议,然而在另一些现场,会出现伺服驱动器 站使用不同协议的情况,这主要是由于不…

No operations allowed after statement closed

错误信息: The last packet successfully received from the server was 3,576,246 milliseconds ago. The last packet sent successfully to the server was 3,576,247 milliseconds ago. 参考解决方案 https://github.com/alibaba/druid/issues/5549 如果修改…

java(2)方法的使用

目录 1.前言 2.正文 2.1方法的定义 2.2方法的调用过程 2.3方法的实参与形参 2.3.1形参 2.3.2实参 2.3.3参数传递 2.4方法的重载 3.小结 1.前言 哈喽大家好啊,今天博主继续带领大家学习java的基本语法,java的基础语法部分打算用六到七篇博文完…

【天怡AI-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

论文内容分类与检测系统源码分享

论文内容分类与检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

昇腾大模型推理解决方案MindIE部署

MindIE大模型推理套件 MindIE(Mind Inference Engine,昇腾推理引擎)是华为公司针对AI全场景推出的整体解决方案,包含丰富的推理加速套件。通过开放各层次AI能力,支撑客户多样化的AI业务需求,使能百模千态&a…

Kamailio-超强dispatcher负载均衡模块

Kamailio 负载均衡的功能主要依靠 Dispatcher 模块完成,模块官方文档参看 为什么要引入负载均衡?如何使用? 引入和配置功能路由调用命令行指令 为什么要引入负载均衡? Q: 如果单台VOIP服务的性能不能满足业务需求了&#xff0…

解决RabbitMQ设置TTL过期后不进入死信队列

解决RabbitMQ设置TTL过期后不进入死信队列 问题发现问题解决方法一:只监听死信队列,在死信队列里面处理业务逻辑方法二:改为自动确认模式 问题发现 最近再学习RabbitMQ过程中,看到关于死信队列内容: 来自队列的消息可…

秋招八股总结

transformer 损失函数 交叉熵的原理 公式 xi是true_label,yi是神经网络预测为正确的概率 对比学习loss 对比学习损失函数 InfoNEC Loss(bge中也用的这个) SimCSE的主要思想:同一句话通过不同的drop out作为正例&#xff0…

【计网】数据链路层:概述之位置|地位|链路|数据链路|帧

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山岗! 💫 欢迎来到我的学习笔记! ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 1. 在OSI体系结构中的位置 1. 位置:数…

Parallels Desktop 20(Mac虚拟机) v20.0.0 for Mac 最新破解版(支持M系列)

Parallels Desktop 20 for Mac 正式发布,完全支持 macOS Sequoia 和 Windows 11 24H2,并且在企业版中引入了全新的管理门户。 据介绍,新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新,最大的亮点是全新推出的 Parallels…

稳联Profinet转Canopen网关携手伺服,高效提升生产效率

在当今的工业生产领域,追求高效、精准和可靠的生产方式是企业不断努力的方向。稳联技术Profinet转Canopen(WL-ABC3033)网关与伺服系统的携手合作,为提高生产效率带来了新的机遇和突破。 实现无缝通信,优化生产流程稳联…

B站前端错误监控实践

前言 从23年开始,我们团队开始前端错误监控方向的开发。经历了一些列的迭代和发展,从监控SDK、上报、数据治理、看板集成、APM自研可视化初步完成了一条完整且适合B站前端监控。 截止目前(2024.08.01),前端监控在B站85%以上的业务线&#xf…

在基准测试和规划测试中选Flat还是Ramp-up?

Flat测试和Ramp-up测试是各有优势的,下面我们就通过介绍几种实用的性能测试策略来分析这两种加压策略的着重方向。 基准测试 基准测试是一种测量和评估软件性能指标的活动,通过基准测试建立一个已知的性能水平(称为基准线)&…