使用 Redis 作为缓存和 C# 客户端

2023-12-30

我是 Redis 新手,正在尝试找出一种简单的方法来使用 Redis 作为我的 C# 应用程序的本地缓存。我已经下载并运行了 redis-serverhttps://github.com/MSOpenTech/redis/releases https://github.com/MSOpenTech/redis/releases

我可以成功存储键值并检索它,如下所示:

        var redisManager = new PooledRedisClientManager("localhost:6379");
        using (var redis = redisManager.GetClient())
        {
            redis.Set("mykey_1", 15, TimeSpan.FromSeconds(3600));
            // get typed value from cache
            int valueFromCache = redis.Get<int>("mykey_1"); // must be = 
        }

我想限制 Redis 在我的服务器上使用的内存量,并且我还希望 Redis 在内存填满时自动清除值。我尝试了 maxmemory 命令,但在 redus-cli 程序中找不到 maxmemory。

Redus 会自动为我清除旧值吗? (我假设不是)如果不是,有没有一种方法可以让 redis 的默认行为使用下面使用的 Set 方法来实现?

如果我走错了路,请告诉我。


您的问题的答案如下所述:当Redis内存不足时会做什么? https://stackoverflow.com/questions/5068518/what-does-redis-do-when-it-runs-out-of-memory

基本上,您可以从配置文件而不是从 redis-cli 设置 maxmemory。您还可以指定一个 maxmemory-policy,它是 redis 在耗尽指定内存时执行的一组过程。根据that http://download.redis.io/redis-stable/redis.conf在config文件中,Redis在内存不足时总共使用了6种策略:

挥发性lru-> 使用 LRU 算法删除带有过期设置的密钥

全键-lru-> 根据LRU算法删除任意key

易失性随机-> 删除带有过期设置的随机密钥

全键随机-> 删除随机密钥,任意密钥

易失性-ttl-> 删除具有最近过期时间(次要 TTL)的密钥

不驱逐-> 根本不会过期,只是在写入操作时返回错误

您可以使用以下命令设置这些行为最大内存策略您可以在 redis.conf 文件的 LIMITS 部分中找到该指令(位于 maxmemory 指令上方)。

因此,您可以为存储在 Redis 中的每个键(一个大的expire http://redis.io/commands/expire时间)并设置易失性-ttl政策。这样,当 Redis 内存不足时,根据您设置的策略,具有最小 TTL 的键(也是最旧的键)将被删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Redis 作为缓存和 C# 客户端 的相关文章

  • Lua中按字符分割字符串

    我有像这样的字符串 ABC DEF 我需要将它们分开 字符并将两个部分分别分配给一个变量 在 Ruby 中 我会这样做 a b ABC DEF split 显然Lua没有这么简单的方法 经过一番挖掘后 我找不到一种简短的方法来实现我所追求的
  • Redis Cluster 与 Pub/Sub 中的 ZeroMQ,用于水平扩展的分布式系统

    如果我要设计一个巨大的分布式系统 其吞吐量应随系统中的订阅者数量和通道数量线性扩展 哪个会更好 1 Redis集群 仅适用于Redis 3 0 alpha 如果是集群模式 您可以在一个节点上发布并在另一个完全不同的节点上订阅 消息将传播并到
  • Redis、会话过期和反向查找

    我目前正在构建一个网络应用程序 并想使用 Redis 来存储会话 登录时 会话会使用相应的用户 ID 插入到 Redis 中 并且过期时间设置为 15 分钟 我现在想实现会话的反向查找 获取具有特定用户 ID 的会话 这里的问题是 由于我无
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • Laravel 所有会话 ID 与 Redis 驱动程序

    在我的应用程序中 我希望允许某些用户能够注销除他 她之外的所有其他用户 当会话驱动程序设置为文件时 我已经完成了此功能 但现在我使用 redis 作为会话驱动程序 并且我无法找到任何方法来列出所有当前会话 就像我在文件时所做的那样司机 问题
  • 有没有办法让特定的key在集群模式下定位到特定的redis实例上?

    我想让我的多锁位于不同的redis实例上 我发现redission可以指定一个实例来执行命令 但是如果该命令与key相关 则指定的实例会将命令传输到另一个实例 你能给我一些建议吗 你可以 但这并不是微不足道的 首先 Redis 在键中使用大
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis
  • 想要在后台不间断地运行redis-server

    我已经下载了 redis 2 6 16 tar gz 文件并安装成功 安装后我运行 src redis server 它工作正常 但我不想每次都手动运行 src redis server 而是希望 redis server 作为后台进程持续
  • 如何将“.csv”数据文件导入Redis数据库

    如何将 csv 数据文件导入 Redis 数据库 csv 文件中包含 id 时间 纬度 经度 列 您能否向我建议导入 CSV 文件并能够执行空间查询的最佳方法 这是一个非常广泛的问题 因为我们不知道您想要什么数据结构 您期望什么查询等等 为
  • 当 Jedis 与 Spring Data 一起使用时,为什么数据会以奇怪的键存储在 Redis 中?

    我将 Spring Data Redis 与 Jedis 一起使用 我正在尝试存储带有密钥的哈希值vc list id 我能够成功插入到redis 但是 当我使用 redis cli 检查密钥时 我没有看到密钥vc 501381 相反我看到
  • 使用环境变量在 redis.conf 中设置动态路径

    我有一个环境变量MY HOME其中有一个目录的路径 home abc 现在 我有一个redis conf文件 我需要像这样设置这个路径 redis conf pidfile MY HOME local var pids redis pid
  • 将文件传递给活动作业/后台作业

    我通过标准文件输入接收请求参数中的文件 def create file params file upload Upload create file file filename img png end 但是 对于大型上传 我想在后台作业中执行
  • 为什么单个 Redis 实例不是线程安全的?

    https github com xetorthio jedis wiki Getting started https github com xetorthio jedis wiki Getting started 在多线程环境中使用Jed
  • 如何通过ARM模板输出返回Redis的primaryKey?

    我正在尝试借助下面列出的 ARM 模板来部署 Redis 然后返回其主密钥 Azure 门户中 Redis 的 访问密钥 gt 主 下可用的秘密字符串 但是 我从管道 AzureResourceManagerTemplateDeployme
  • nginx/uwsgi 服务器的持久内存中 Python 对象

    我怀疑这是否可能 但这是问题和提出的解决方案 提出的解决方案的可行性是这个问题的对象 我有一些需要可用于所有请求的 全局数据 我将这些数据保存到 Riak 并使用 Redis 作为缓存层以提高访问速度 目前 数据被分为约 30 个逻辑块 每
  • memcache、redis 和 ehcache 作为分布式缓存框架的比较 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要做出的决定之一是在我的系统中使用什么缓存框架 有这么多可供选择 我目前正在研究 redis ehcache 和 memcached
  • 在 Redis 中存储 IP 范围

    我有很多不同提供商的 IP 范围 例如 P1 192 168 1 10 192 168 1 50 192 168 2 16 192 168 2 49 P2 17 36 15 34 17 36 15 255 P3 我将此 IP 转换为 int
  • 执行 SET {Key} 超时,inst: 0,mgr: Inactive,queue: 2, qu=1, qs=1, qc=0, wr=1/1, in=0/0

    我正在尝试使用 StackExchange Redis 客户端将 90 KB pdf 文件保存到 Azure Redis 缓存中 我已将该文件转换为字节数组并尝试使用 stringSet 方法保存它并收到错误 Code byte bytes
  • 如何暂停或恢复 celery 任务?

    我的项目中有一项要求 客户可以暂停或恢复正在挂起的流程 而不是流程流程 我在用网络套接字显示芹菜任务结果 但在暂停 恢复时我不明白如何设计代码 我想到的唯一方法就是revoke暂停请求中的任务 同时保留数据撤销的过程在缓存中 并稍后在res
  • Redis 会话序列化器 3.2 和 4.2 之间不匹配

    我有一个基于 Spring Cloud 的应用程序在多个 spring boot 服务器上运行 所有服务器使用 EnableRedisHttpSession共享相同的Spring Session 我现在想将第三方小部件集成到我的应用程序中

随机推荐

  • 在JMeter性能测试中监控Jboss中的资源使用情况

    我们正在对 JBoss 4 0 5 部署的 Web 应用程序执行一些 JMeter 测试 我们希望将服务器上应用程序的资源使用情况 内存 线程等 与 JMeter 响应时间结果集成起来 我们找到了使用 Tomcat 执行此操作的教程 我们想
  • PyDES 与 Bloomberg 数据

    我正在尝试使用 PyDES 解密 DES 编码的 Bloomberg 财务数据 该文件以 gz enc 结尾 我可以将该文件读取为二进制文件 将二进制文件重新加载回变量 该变量有数据 然后对其使用以下解密 k pyDes des passw
  • 安装OpenCV并使用GCC编译C程序

    作为我正在进行的一个更大项目的一部分 我需要在 C 程序上使用 OpenCV 库 我在 Fedora 17 32 位中使用 yum 安装了 OpenCV 和 opencv devel 我指示预处理器导入 opencv cv h 和 open
  • Jfreechart获取鼠标坐标

    我一直在尝试获取 JfreeChart 中的当前鼠标坐标 并发现以下解决方案部分有效 JFreeChart获取鼠标坐标 https stackoverflow com questions 1512112 jfreechart get mou
  • 如何打印迷宫中从源到目标的 BFS 路径

    我正在尝试实现 BFS 以便找到迷宫中从源到目标的最短路径 我遇到的问题是我无法打印路径 它在迷宫中打印为 但是如何从 BFS 的前辈中提取路径而不打印所有访问过的节点 这是我的代码供您编译 include
  • 如何避免在 PowerShell 脚本中保存用户名和密码

    所以基本上我想编写一个 Powershell 脚本 它将导出 Windows Server 备份的最后 1 天的备份日志 将信息格式化为一个漂亮的小表 然后 SMTP 将其发送到客户本地 Exchange 之外的外部位置 我有一个可以用于此
  • Python 中的协程与 Lua 中的协程相比如何?

    Lua 中对协程的支持由中的函数coroutine table https www lua org manual 5 3 manual html 2 6 主要是create resume and yield 开发人员将这些协程描述为堆栈式
  • Autoconf 子目录与子包相互依赖吗?

    我手上有一个大型项目 master 它被分成几个组件 liba b c d 以方便构建和维护 在构建整个包时 必须按顺序构建所有子组件 并且其中一些包相互依赖 更明确地说 liba 是 b c 和 d 的先决条件 并且 liba 的存在由配
  • 给定一个列表,如何仅对每两个元素满足二元谓词的子列表执行某些转换?

    在我的实际用例中 我有一个类型列表 SomeType SomeType具有有限数量的构造函数 且全部为 null 下面我将使用String代替 SomeType 并且只使用4Chars 稍微简化一下 我有一个这样的清单 aaassddddf
  • Perl:如何分割文件?

    我需要将一个文件分成不同的文件 示例 原始文件 3123123 RAW text1 text2 2312354 RAW text3 期望的输出 文件1 txt 3123123 RAW text1 text2 文件2 txt 31231235
  • git:如何将git注释添加的消息推送到中央git服务器?

    似乎没有关于 git 注释的适当文档 我使用 git Notes add 命令向其中一个提交添加了一些注释 但是当我推送提交并稍后进行单独的克隆时 我在那里看不到注释消息 有没有办法推送通过 git Notes 命令添加的所有注释消息 推送
  • Xrm.Utility.openwebresource 打开新选项卡

    我们有一个 onprem crm 2016 我只需单击功能区按钮即可打开一个 html web 资源 我在用着Xrm Utility openWebResource 问题是我们使用的是 IE11 并且所有用户的浏览器都配置为让 IE 决定如
  • 使用 XDebug 和 PHPStorm 调试 Symfony2

    我尝试着尝试 但我无法在 PHPStorm 中使用 XDebug 为 Symfony2 获得正确的调试配置 我已经检查并重新检查过 phpstorm xdebug 与 symfony2 项目 https stackoverflow com
  • 如何创建九个补丁并在我的应用程序中使用它?

    我想创建一个九补丁图像并在我的应用程序中使用它 但我不知道如何创建它 我在网上搜索了 Android 源代码 但似乎找不到任何这样的示例 我需要一个教程 以便我能够理解该过程 我已经搜索过最好和最简单的答案制作 9 块图像 现在制作 9 个
  • Rcpp 相当于 rowsum [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找 R 函数的快速替代方案r
  • Python 请求:不要等待请求完成

    在 Bash 中 可以通过附加命令在后台执行命令 我怎样才能用Python做到这一点 while True data raw input Enter something requests post url data data Don t w
  • DrawContours() 不工作 opencv python

    我正在研究在 opencv python 中查找和绘制轮廓的示例 但是当我运行代码时 我只看到一个没有绘制轮廓的黑色窗口 我不知道我哪里错了 代码是 import numpy as np import cv2 im cv2 imread t
  • 如何在GAEJ中建模实体关系?

    我想知道 非常感谢一个例子 如何在 Google App Engine for Java 中建立关系建模 一对多 多对多 我在网上搜索了一下 没有发现任何关于 Java 的内容 所有指南和教程都是关于 Python 的 我由此明白了arti
  • 在 Android 中显示来自服务/接收器的“确定”对话框

    我的应用程序有一个接收器 当收到短信时会调用该接收器 我想用一个简单的一键对话框通知用户 这是我的代码 AlertDialog Builder builder new AlertDialog Builder context builder
  • 使用 Redis 作为缓存和 C# 客户端

    我是 Redis 新手 正在尝试找出一种简单的方法来使用 Redis 作为我的 C 应用程序的本地缓存 我已经下载并运行了 redis serverhttps github com MSOpenTech redis releases htt