[C#]使用Redis来存储键值对(Key-Value Pair)

简介: 原文:[C#]使用Redis来存储键值对(Key-Value Pair)  本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢! 开发工具:VS2017 语言:C# DotNet版本:.
原文: [C#]使用Redis来存储键值对(Key-Value Pair)

 


本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢!


开发工具:VS2017

语言:C#

DotNet版本:.Net FrameWork 4.5及以上

系统:Win10 X64

一、安装Redis服务器

首先,从以下网站下载Redis服务器,

并从以下列表中下载Redis-x64-3.2.100.msi,如下图所示:

或者从百度网盘进行下载,如下:

其次,安装Redis-x64-3.2.100.msi,全部点击肯定性按钮直至安装完成,如下图所示:

安装完毕之后,使用WIN+R弹出“运行”窗体,输入“services.msc”打开系统“服务”窗体,我们可以看到如下的信息:

以上是“Redis服务器”服务,如果想以此作为服务器,强烈建议设置服务的启动类型为“自动”(保持默认值即可)

然后,将C:\Program Files\Redis路径加入系统环境变量里面,如下图所示:

此次目的是用于以后不再输入文件路径(减少输入路径带来的不便),如下图所示:

二、安装StackExchange.Redis,用于C#与服务器进行交互

首先,从“程序包管理器控制台”输入以下内容进行安装引用StackExchange.Redis,如下所示:

PM> Install-Package StackExchange.Redis

备注:最新版本不允许使用.DotNet4.0,这里使用.Net4.5,否则将安装不了。

安装结果如下图所示:

其次,在控制台编写以下代码:

using StackExchange.Redis;
using System;
using System.Threading;

namespace RedisConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnectionMultiplexer cm =  ConnectionMultiplexer.Connect("127.0.0.1:6379");
            IDatabase db = cm.GetDatabase();
            db.StringSet("Info", "Hello World");
            string result = db.StringGet("Info");
            Console.WriteLine(result);

            ISubscriber sc = cm.GetSubscriber();
            string channelStr = "CH1";
            sc.Subscribe(channelStr, (channel, information) => Console.WriteLine($"From {channel}: {information}"));
            sc.Publish(channelStr, "Hello,my name is CNXY");
            Thread.Sleep(100);
            sc.Publish(channelStr, "My website is http://www.cnc6.cn");
            Console.ReadKey();

        }
    }
}

其输出结果如下:

然后,我们同样可以利用Redis-cli来查看刚才建立的信息,如下所示:

三、如何加密连接

首先,打开"C:\Program Files\Redis\redis.windows.conf",将里面的“# requirepass foobared”改成“#requirepass 你的密码”即可,此处修改为“requirepass 123”,修改后必须重启服务,如下图所示:

其次,在C#源代码里将 ConnectionMultiplexer.Connect("127.0.0.1:6379")改成 ConnectionMultiplexer.Connect("127.0.0.1:6379,password=123")即可。

然后,我们看看是不是被密码保护了,具体如下图所示:

从上图可以看出,该连接已经被保护了!

四、如何使用远程访问

首先,打开"C:\Program Files\Redis\redis.windows.conf",将里面的“bind 127.0.0.1”改成“#bind 127.0.0.1”即可,修改后必须重启服务,如下图所示:

然后,使用其他IP地址(如192.168.94.250)进行操作,如下图所示:

可以从上图看出,使用192.168.94.250这个IP地址可以正常进行操作。

同样,需要将C#代码里对应的IP地址从127.0.0.1改成192.168.94.250,如下代码所示:

//ConnectionMultiplexer cm = ConnectionMultiplexer.Connect("127.0.0.1:6379,password=123");
ConnectionMultiplexer cm =  ConnectionMultiplexer.Connect("192.168.94.250:6379,password=123");

 


其他对哈希表、列表、集合及有序集合等的操作,请自行百度,谢谢!

目录
相关文章
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
453 1
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
183 2
数据的存储--Redis缓存存储(二)
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
247 6
|
6月前
|
存储 缓存 NoSQL
告别数据僵尸!Redis实现自动清理过期键值对
在数据激增的时代,Redis如同内存管理的智能管家,支持键值对的自动过期功能,实现“数据保鲜”。通过`EXPIRE`设定生命倒计时、`TTL`查询剩余时间,结合惰性删除与定期清理策略,Redis高效维护内存秩序。本文以Python实战演示其过期机制,并提供最佳实践指南,助你掌握数据生命周期管理的艺术,让数据优雅退场。
420 0
|
9月前
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用的算法是哈希槽分区算法。Redis集群中有16384个哈希槽(槽的范围是 0 -16383,哈希槽),将不同的哈希槽分布在不同的Redis节点上面进行管理,也就是说每个Redis节点只负责一部分的哈希槽。在对数据进行操作的时候,集群会对使用CRC16算法对key进行计算并对16384取模(slot = CRC16(key)%16383),得到的结果就是 Key-Value 所放入的槽,通过这个值,去找到对应的槽所对应的Redis节点,然后直接到这个对应的节点上进行存取操作
|
存储 消息中间件 监控
Redis Stream:实时数据流的处理与存储
通过上述分析和具体操作示例,您可以更好地理解和应用 Redis Stream,满足各种实时数据处理需求。
1119 14
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用哈希槽分区算法,共有16384个哈希槽,每个槽分配到不同的Redis节点上。数据操作时,通过CRC16算法对key计算并取模,确定其所属的槽和对应的节点,从而实现高效的数据存取。
259 13
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
574 8
|
存储 NoSQL Redis
【赵渝强老师】Redis的存储结构
Redis 默认配置包含 16 个数据库,通过 `databases` 参数设置。每个数据库编号从 0 开始,默认连接 0 号数据库,可通过 `SELECT <dbid>` 切换。Redis 的核心存储结构包括 `dict`、`expires` 等字段,用于处理键值和过期行为。添加键时需指定数据库信息。视频讲解和代码示例详见内容。
224 0
|
存储 NoSQL Redis
2)Redis 的键值对长什么样子,又是怎么存储的?
2)Redis 的键值对长什么样子,又是怎么存储的?
301 0