Redis优于c#字典的好处

Redis优于c#字典的好处,c#,dictionary,redis,concurrentdictionary,C#,Dictionary,Redis,Concurrentdictionary,我想知道与Dictionary/ConcurrentDictionary等相比,Redis及其C#客户端有什么好处 我不确定在字典存储中使用redis是否被认为是过度使用 谢谢。对于一个本地的单机应用程序来说,Redis可能是一个过火的东西。尤其是数据量不大的时候 它主要用作二级缓存层。假设你有多台机器为你的应用服务,每台机器都可以拥有自己的本地缓存,但Redis可以作为所有机器的全局缓存。假设应用程序的用户浏览到需要从后端数据库获取一些数据的页面或功能。然后,您的应用程序将检查其本地一级缓存(

我想知道与Dictionary/ConcurrentDictionary等相比,Redis及其C#客户端有什么好处

我不确定在字典存储中使用redis是否被认为是过度使用


谢谢。

对于一个本地的单机应用程序来说,Redis可能是一个过火的东西。尤其是数据量不大的时候

它主要用作二级缓存层。假设你有多台机器为你的应用服务,每台机器都可以拥有自己的本地缓存,但Redis可以作为所有机器的全局缓存。假设应用程序的用户浏览到需要从后端数据库获取一些数据的页面或功能。然后,您的应用程序将检查其本地一级缓存(例如字典)。这将是最快的方法,因为它不涉及任何网络往返。如果数据不在那里,它将在Redis中作为全局应用程序缓存进行查找。如果有-很好-获取数据并放入本地一级缓存。如果没有,则转到数据库,获取数据,将其放入Redis(L2)和本地缓存(L1)

你可以阅读更多关于这方面的内容


也就是说,Redis的用途不仅仅是缓存-发布/订阅功能、
s、
排序集
s和它们上面的功能(如交叉点、联合等),甚至还有
字符串
类型上的智能功能,如按位操作,使用Redis进行服务器内缓存将是一种过分的做法

但是在分布式应用程序中使用Redis和C#肯定会带来一些好处(以下所有操作都是线程安全的):

  • 您可以用C#为您的项目构建一个定制的ORM包装器,这样您可以从一台服务器无缝地访问另一台服务器上的.NET对象。您可以将
    字典
    对象缓存在Redis哈希中,将
    列表
    对象缓存在Redis列表中,将
    哈希集
    对象缓存在Redis集中,等等。如果您的值是字符串/整数/浮点,则甚至不需要序列化
  • 发布/订阅/来自多个服务器/线程
  • C#后台服务/调度程序可以从维护Redis列表中的任务或对象以及使用Redis的API获取事件触发器中获益
  • 使用Redis的
    sorted set
    s维护“前10名”、“后10名”项目等

  • 但归根结底,这完全取决于您的用例。

    1/您为什么不试试看呢?2/像这样的一般问题可能更适合。我想了解redis应该如何使用,以及它相对于常规内存c#object的优势是什么,它并不意味着这两者之间是一对一的较量。是的,但你知道这类问题最终会是什么:主观答案,所以,要么你有一个精确的问题要问,要么你得不到任何答案,要么它就会关闭。@Aviran Cohen,我的答案对你有帮助吗?