`
annan211
  • 浏览: 447980 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

记一次 redis 调错经验 java.util.NoSuchElementException: Unable to validate object

 
阅读更多
[size=large]
运行正常的redis集群,在今早爆出 连串错误。
先是 拒绝连接:
排查过程:
范围猜测
1 怀疑服务器断电重启导致端口被防火墙校验
2 端口被其他进程占用
3 内存不足
4 IP段切换造成

过程:
关闭防火墙 检查redis读写是否能够正常访问  正常
netstat 检查端口占用 无占用
查看内存  因为使用的redis是3.2.9 版本,鉴于redis copy-on-write特性,内存应该占用不大
IP 分段测试,多台服务器检测。

一轮排查下来 范围大致圈定在redis服务器本身。

续查:给指定的问题redis 指定日志 具体配置redis.conf
 loglevel notice
logfile /opt/server/redis-3.2.9/redis.log 


注意要把不相干的日志配置注释 以免干扰,发现无异常。怀疑是redis.conf bind参数问题,因为后期有新机器接入 IP段混乱。 为避免干扰 直接注释掉此参数。
 
  现在允许访问。

  但是后续问题继续出现,允许访问一段时间(几分钟)之后,停止对外服务,报错为     java.util.NoSuchElementException: Unable to validate object 
 
随即排除用户名密码问题和redis服务本身问题。
继续观察日志 发现在停止访问的过程中  不断有进程尝试对内存数据进行持久化。日志提示open file有限制
怀疑:
1 连接超时
2 文件句柄太小
3 文件写入异常

过程:
  增加 timeout 时间,进行调试,
  增加ulimit -n 限制 进行测试 此时报错改为 RDB文件写入有问题。
  随即修改rdb持久化文件配置
 
dir /tmp/redis_data  
#./->/tmp/redis_data
dbfilename temp.rdb
#
  

操作指令:

  sudo mkdir /tmp/redis_data
  sudo touch temp.rdb
 

进行测试  发现日志提示  不允许自己创建temp.rdb文件,随即删除该文件
测试 ,报错修改为 写入文件权限不足,随即修改文件路径权限。
测试 正常,一段时间后 仍然正常写入。
问题解决。


  
[/size]
分享到:
评论

相关推荐

    redis-5.0.14-1.el7.remi.x86-64.rpm安装包(含有部署手册)

    redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm...

    redis-5.0.5.tar.gz

    redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-...

    netty-codec-redis-4.1.74.Final-API文档-中文版.zip

    标签:netty、codec、redis、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    redis-3.0.7.tar.gz

    下载redis(http://redis.io/) 2.上传到linux 3.在 usr/local下新建文件夹 redis mkdir /usr/local/redis 4.将root下的redis移动到 /usr/local/redis 然后解压 mv redis-3.0.7.tar.gz /usr/local/redis/ cd /...

    redis-5.0.4.tar.gz下载及redis安装过程

    /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf 连接: 用redis-cli cd /usr/local/redis/bin/ ./redis-cli #进入 exit /quit #退出 关闭redis pkill redis-server #关闭 ./redis-cli shutdown ...

    redis-5.0.3.tar.gz + redis-5.0.4.tar.gz + redis-5.0.5.tar.gz

    其中包含:redis-5.0.3.tar.gz + redis-5.0.4.tar.gz + redis-5.0.5.tar.gz 以及。。。 一个redis的下载地址,各版本可选。 以及…… 可以思考下收藏这个网站,见压缩包。

    netty-codec-redis-4.1.73.Final-API文档-中文版.zip

    标签:codec、redis、netty、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    netty-codec-redis-4.1.73.Final-API文档-中英对照版.zip

    标签:codec、redis、netty、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    redis-4.0.6.tar.gz linux安装包

    1.解压文件获得redis-4.0.6.tar包 2.redis-4.0.6.tar拷贝到服务器 3.cd /mnt 4.解压至任一目录 tar xzf redis-4.0.6.tar.gz

    spring-data-redis-2.0.9.RELEASE-API文档-中英对照版.zip

    标签:springframework、data、spring、redis、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    redis5离线安装文件包,包含redis-5.0.14.tar.gz和redis-4.6.0.gem

    # 下载 redis-3.2.1.gem然后本地安装 sudo gem install -l ./redis-3.2.1.gem port 6379 daemonize yes #bind自己的ip bind 192.168.129.101 protected-mode no #启用集群 cluster-enabled yes cluster-config-file ...

    phpredis-5.0.2.tar.gz

    PHP redis扩展 https://github.com/phpredis/phpredis/releases tar -zxvf /root/...

    netty-codec-redis-4.1.74.Final-API文档-中英对照版.zip

    标签:netty、codec、redis、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    redis-3.2.13安装文件集群安装文件包含redis-3.2.13.tar.gz,和redis-3.2.1.gem

    redis3集群安装包. sudo yum -y install gcc gcc-c++ tcl zlib zlib-devel ruby ruby-devel rubygems rpm-build sudo gem install -l ./redis-3.2.1.gem 启动6个redis节点,然后使用sudo /home/tydic/redis-3.2.13/...

    spring-session-data-redis-2.0.4.RELEASE-API文档-中英对照版.zip

    赠送jar包:spring-session-data-redis-2.0.4....标签:springframework、session、spring、data、redis、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文

    docker-redis-cluster-master.tar.gz 集群

    docker-compose一键安装redis集群所需配置文件 初始化3主3从集群redis-cli --cluster create 192.168.0.224:6391 192.168.0.224:6392 192.168.0.224:6393 192.168.0.224:6394 192.168.0.224:6395 192.168.0.224:6396...

    redis-4.0.6.tar.gz

    在 windows 上解压一下 里面内置 redis-4.0.6.tar.gz

    redis-2.4.16.tar.gz

    redis-2.4.16.tar.gz key-value 数据库

    Redis-x64-3.0.503_bak.zip

    redis.exceptions.ConnectionError: Error 10061 connecting to 127.0.0.1:6379. 由于目标计算机积极拒绝,无法连接。安装这个包即可,给的github链接地址给下载奇慢

    jedis-3.3.0.jar

    java.lang.NoSuchMethodError: redis.clients.jedis.ScanResult.getStringCursor()Ljava/lang/String; at org.crazycake.shiro.WorkAloneRedisManager.keys(WorkAloneRedisManager.java:149) at org.crazycake....

Global site tag (gtag.js) - Google Analytics