关于c#:如何在-NET-中使用-Redis缓存

40次阅读

共计 1980 个字符,预计需要花费 5 分钟才能阅读完成。

译文链接:https://www.infoworld.com/art…

缓存是一种状态管理机制,通常用于晋升你的应用程序性能,它很大水平上可能缩小一个申请对你系统资源的耗费。

Redis 是一个开源的,高性能的,NoSql 数据库,它的速度十分快,而且所有的数据都是灌入到内存中,从内存中读写数据的性能开销真的是微不足道,值得一提的是 Redis 采纳的是 BSD license,阐明你能够将它用于商业和非商业的用处。

Redis 是什么,我为什么要用它?

Redis 是最风行的开源,NoSQL,基于内存的数据存储,而且十分???? 的是:它的数据存储反对多个数据结构,eg:strings,hashes,sets,lists 等等,Redis 外部也提供了对 复制散发 和 事务 的反对,同时在数据长久化方面也做的十分好。

如果你的应用程序须要读取大量的数据,并且你的机器有很多的闲暇内存,在这样的场景下如果你有晋升性能的需要,采纳 Redis 是一个十分好的抉择,将 Redis 利用到你的程序中操作步骤也是非常简单的,接下来咱们会一起探讨下如何去装置,配置和应用。

装置 Redis

本篇探讨下如何在 Windows 平台上装置 Redis,安装包能够到 GitHub:https://github.com/MSOpenTech… 去下载,在装置的过程中,记得勾选一下 add Redis to the PATH environmental variable,将 Redis 的门路增加到环境变量中,等到安装程序执行结束之后,能够通过 Run -> service.msc 到 windows 的服务面板去看下 redis service 是否曾经装置胜利。

应用 Redis Client Sdk

当初 redis 曾经胜利装置到你的零碎中了,接下来你须要一个 client sdk 去连贯 redis server 来读取数据,在上面的例子中,我会应用开源的 ServiceStack 这个 sdk,接下来在 Visual Studio 中创立一个 Console 应用程序,而后通过 NuGet packkage manager 来装置 ServiceStack.Redis

假设当初 ServiceStack.Redis 曾经通过 NuGet 胜利装置,上面的两个办法展现了连贯 Redis server 来发送和读取数据。


        private static bool Save(string host, string key, string value)
        {
            bool isSuccess = false;
            using (RedisClient redisClient = new RedisClient(host))
            {if (redisClient.Get<string>(key) == null)
                {isSuccess = redisClient.Set(key, value);
                }
            }
            return isSuccess;
        }

        private static string Get(string host, string key)
        {using (RedisClient redisClient = new RedisClient(host))
            {return redisClient.Get<string>(key);
            }
        }

留神 RedisClient 的 Set 和 Get 办法是如何从 Redis 中发送和读取数据的,我筹备留给你一件事件,你能够试着批改一下这两个办法让其反对泛型,这样的话你的两个办法就能够反对任何类型了,对吧。

接下来看一下如何在 Main 办法中调用,代码如下:


        static void Main(string[] args)
        {
            string host = "localhost";
            string key = "IDG";
            // Store data in the cache
            bool success = Save(host, key, "Hello World!");
            // Retrieve data from the cache using the key
            Console.WriteLine("Data retrieved from Redis Cache:" + Get(host,key));
            Console.Read();}   

正如我之前所说,Redis 的性能特地多,在后续的文章中,我会和大家一起探讨 Redis 的高级个性,比如说:长久化,公布订阅,失败转移 等等,你也能够利用 RDB (单个压缩文件) 或者 AOF 的形式去长久化数据,那我应该抉择哪一种长久化呢?你能够在 高性能,长久化,磁盘 IO 这些方面综合衡量一下。

如果想理解 Redis 的更多常识,能够参考官网文档:https://redis.io/documentation

对了,如果你想用一个可视化界面去治理 Redis 数据,能够试一下这款工具: Redis Admin UI tool, 下载地址:https://github.com/ServiceSta…

更多高质量干货:参见我的 GitHub: dotnetfly

正文完
 0