C#连接redis出现下面错误解决方案

客户端报错如下:
StackExchange.Redis.RedisConnectionException: No connection is available to service this operation: EXISTS UserSysData_1016644; SocketFailure on 192.172.0.128:6379/Interactive, origin: CheckForStaleConnection, input-buffer: 0, outstanding: 3, last-read: 1s ago, last-write: 0s ago, unanswered-write: 1s ago, keep-alive: 60s, pending: 0, state: ConnectedEstablished, in: 0, ar: 0, last-heartbeat: 0s ago, last-mbeat: 0s ago, global: 0s ago, mgr: RecordConnectionFailed_ReportFailure, err: never; IOCP: (Busy=1,Free=999,Min=8,Max=1000), WORKER: (Busy=3,Free=32764,Min=8,Max=32767), Local-CPU: n/a —> StackExchange.Redis.RedisConnectionException: SocketFailure on 192.172.0.128:6379/Interactive, origin: CheckForStaleConnection, input-buffer: 0, outstanding: 3, last-read: 1s ago, last-write: 0s ago, unanswered-write: 1s ago, keep-alive: 60s, pending: 0, state: ConnectedEstablished, in: 0, ar: 0, last-heartbeat: 0s ago, last-mbeat: 0s ago, global: 0s ago, mgr: RecordConnectionFailed_ReportFailure, err: never
— 内部异常堆栈跟踪的结尾 —

1.此时查看redis内存使用情况

大家可以看到, user_momory_human=used_memory_peak_human 指标。这样代表峰值的时候redis内存已经不够用了,导致服务往内存插入数据插不进去,报上述错误。
为什么会有这么大的数据量 一个是没有设置数据过期时间,二是生产的确有这么大的数据量,我们此时临时解决方案:增加redis最大内存 命令: config set maxmemory 25G ,临时增大为25G,重启客户端程序,此时程序不报错了。后期可能会根据业务情况,设置不同的key过期时间不同,这样redis压力也不会大。
关于如何在项目中正确使用redis,参考我的另一篇文章 https://blog.csdn.net/Z__Sheng/article/details/100177644
2.redis命令详解

下面是介绍命令信息:来自菜鸟教程:
server : 一般 Redis 服务器信息,包含以下域:
redis_version : Redis 服务器版本
redis_git_sha1 : Git SHA1
redis_git_dirty : Git dirty flag
os : Redis 服务器的宿主操作系统
arch_bits : 架构(32 或 64 位)
multiplexing_api : Redis 所使用的事件处理机制
gcc_version : 编译 Redis 时所使用的 GCC 版本
process_id : 服务器进程的 PID
run_id : Redis 服务器的随机标识符(用于 Sentinel 和集群)
tcp_port : TCP/IP 监听端口
uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数
uptime_in_days : 自 Redis 服务器启动以来,经过的天数
lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理

clients : 已连接客户端信息,包含以下域:
connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端)
client_longest_output_list : 当前连接的客户端当中,最长的输出列表
client_longest_input_buf : 当前连接的客户端当中,最大输入缓存
blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量

memory : 内存信息,包含以下域:
used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位
used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量
used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
used_memory_peak : Redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值
used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)
mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率
mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。
在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。
当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。
内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。
当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。
如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。

查看 used_memory_peak 的值可以验证这种情况是否发生。
persistence : RDB 和 AOF 的相关信息
stats : 一般统计信息
replication : 主/从复制信息
cpu : CPU 计算量统计信息
commandstats : Redis 命令统计信息
cluster : Redis 集群信息
keyspace : 数据库相关的统计信息

StackExchange.Redis.RedisConnectionException: No connection is available to service this operation:相关推荐

  1. StackExchange.Redis.RedisConnectionException: No connection is available to service this operation分析

    原因 这个错误消息说明客户端与redis服务连接建立失败,失败的原因主要有以下几方面: redis服务问题 网络问题 StackExchange.Redis自身存在的bug 解决办法 redis服务问 ...

  2. StackExchange.Redis.RedisConnectionException:“It was not possible to connect to the redis server(s);

    StackExchange.Redis.RedisConnectionException:"It was not possible to connect to the redis serve ...

  3. StackExchange.Redis学习笔记(五) 发布和订阅

    StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...

  4. .net core 使用redis 基于 StackExchange.Redis

    一.添加引用包 StackExchange.Redis Microsoft.Extensions.Configuration 二.修改配置文件 appsettings.json {"Redi ...

  5. StackExchange.Redis性能调优

    编者:.net core redis 驱动推荐,为什么不使用 StackExchange.Redis 引起了很大的反响,大家反应过度,其实StackExchange.Redis 2.0已经从重构了异步 ...

  6. stackexchange.mysql_.net core使用redis基于StackExchange.Redis

    .net core使用redis基于StackExchange.Redis教程,具体如下 一.添加引用包 StackExchange.Redis Microsoft.Extensions.Config ...

  7. linux 连接redis_.NetCore 使用StackExchange.Redis 连接Redis

    点击上方蓝字关注我们 StackExchange.Redis是一个.Net平台上使用较为广泛的一个Redis封装 01 安装Redis 前提是得先在本机上安装Redis,由于我是在window上,访问 ...

  8. StackExchange.Redis 使用LuaScript脚本模糊查询hash

    获取redis连接 public class RedisHelper{private static readonly string ConnectionString = ConfigurationMa ...

  9. (三)Redis for StackExchange.Redis

    目录 (一)Redis for Windows正确打开方式 (二)Redis for 阿里云公网连接 (三)Redis for StackExchange.Redis StackExchange.Re ...

最新文章

  1. 腾讯云服务器搭建WampServer环境
  2. python3 日志检索异常抛出异常 raise KeyError(key),KeyError: ‘formatters‘
  3. ThreadPoolExecutor 的八种拒绝策略 | 含番外!
  4. Windows下Go语言的安装和运行
  5. Git突破文件限制上传大文件
  6. export_symbol的使用
  7. tableau实战系列(十七)-如何将 tableau的Server License迁移到新环境中去
  8. web前端零基础入门学习!前端真不难!
  9. window,linux python2,python3共存
  10. mysql 读写引擎_揭秘MySQL存储引擎spider
  11. android 手机号码显示加空格,Android实现输入手机号时自动添加空格
  12. 浙大计算机考研录取名单2021,2021浙大考研拟录取名单公布,初试倒数第一竟然成功逆袭!...
  13. windows上修改docker镜像保存地址
  14. [3-6] xp系统主题下载最新xp系统软件更新 [yeskm整理]
  15. jpg在线转换pdf
  16. Vasp第一性原理计算从零单排——石墨烯能带的计算
  17. 网页导出pdf不完整_怎么把pdf文件导出为图片?支持导出什么图片格式?
  18. 【安全问道】系列:阿里带你3分钟掌握一个互联网安全知识
  19. Java JavaScript BOM和正则表达式
  20. 「 JVM基础 」Java双亲委派机制

热门文章

  1. json转字符串会存在null值字段会被忽略,如何避免
  2. windows10 长截图
  3. win10mysql-8.0.13的安装_win10下安装配置mysql-8.0.13
  4. vue-element-admin安装依赖报错
  5. python 获取硬盘信息失败请谨慎操作_【裸机装系统】获取硬盘信息失败,请谨慎操作!(示例代码)...
  6. NRF52840学习历程(十一) 幻彩RGB灯WS2812多路(两路)输出
  7. 神通数据库打开服务_2020 年 9 月国产数据库流行度排行
  8. C++音视频编程探秘
  9. Serializable序列化实例
  10. 无线蓝牙耳机排行榜哪个最好用?情人节优惠力度大的蓝牙耳机