Redis:在windows环境安装Redis

第一步:

下载windows版本的Redis:https://github.com/MSOpenTech/Redis

第二步:

在命令行执行:D:\redis-2.6\redis-server.exe。

第三步:

这里有教程:https://github.com/ServiceStack/ServiceStack.Redis

C#版本的客户端类库

Write、Read和Remove测试

代码下载:http://yunpan.cn/QtNrcGxnPRVdV

复制代码
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Threading;
 7 
 8 using ServiceStack.Redis;
 9 using ServiceStack.Text;
10 using ServiceStack.Redis.Generic;
11 
12 namespace RedisStudy
13 {
14     public class User
15     {
16         public string Name { get; set; }
17     }
18 
19     class Program
20     {
21         static void Main(string[] args)
22         {
23             Write();
24             Read();
25             Remove();
26         }
27 
28         private static void Write()
29         {
30             using (var redisClient = new RedisClient())
31             {
32                 IRedisTypedClient<User> redis = redisClient.As<User>();
33 
34                 var users = redis.Lists["urn:users"];
35 
36                 users.Add(new User { Name = "段光伟" });
37                 users.Add(new User { Name = "段光宇" });
38 
39                 redis.Save();
40             }
41         }
42 
43         private static void Read()
44         {
45             using (var redisClient = new RedisClient())
46             {
47                 IRedisTypedClient<User> redis = redisClient.As<User>();
48 
49                 var users = redis.Lists["urn:users"];
50 
51                 Console.WriteLine(users.Count);
52 
53                 redis.Save();
54             }
55         }
56 
57         private static void Remove()
58         {
59             using (var redisClient = new RedisClient())
60             {
61                 IRedisTypedClient<User> redis = redisClient.As<User>();
62 
63                 var users = redis.Lists["urn:users"];
64 
65                 redis.RemoveEntry(users);
66             }
67         }
68     }
69 }
复制代码

发布订阅测试

复制代码
 1         static void Main(string[] args)
 2         {
 3             var messagesReceived = 0;
 4             var maxMessage = 5;
 5             var channelName = "幸福框架";
 6 
 7             using (var redisConsumer = new RedisClient())
 8             {
 9                 using (var subscription = redisConsumer.CreateSubscription())
10                 {
11                     subscription.OnSubscribe = channel =>
12                     {
13                         Console.WriteLine(String.Format("订阅频道:'{0}'", channel));
14                     };
15                     subscription.OnUnSubscribe = channel =>
16                     {
17                         Console.WriteLine(String.Format("取消订阅频道:'{0}'", channel));
18                     };
19                     subscription.OnMessage = (channel, msg) =>
20                     {
21                         Console.WriteLine(String.Format("从频道:'{0}'获取了消息:'{1}'", channel, msg));
22 
23                         if (++messagesReceived == maxMessage)
24                         {
25                             subscription.UnSubscribeFromAllChannels();
26                         }
27                     };
28 
29                     ThreadPool.QueueUserWorkItem(x =>
30                     {
31                         Thread.Sleep(200);
32                         Console.WriteLine("开始发布消息");
33 
34                         using (var redisPublisher = new RedisClient())
35                         {
36                             for (var i = 1; i <= 5; i++)
37                             {
38                                 var message = "段光伟:" + DateTime.Now;
39                                 Console.WriteLine(String.Format("发布消息:'{0}'到频道:'{1}'", message, channelName));
40                                 redisPublisher.PublishMessage(channelName, message);
41                             }
42                         }
43                     });
44 
45                     Console.WriteLine(String.Format("开始监听频道:'{0}'", channelName));
46                     subscription.SubscribeToChannels(channelName); //blocking
47                 }
48             }
49         }
复制代码

备注

听说很多人用Redis做缓存和消息队列,就想尝试一下,这次先把安装环境弄好,有个基本了解了,找个时间继续学习:缓存和消息队列。

 

posted on   幸福框架  阅读(19817)  评论(7编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
我要啦免费统计
点击右上角即可分享
微信分享提示