大发龙虎首页    注册   登录
大发龙虎 = way to explore
大发龙虎 是一个大发龙虎关于 分享和探索的地方
现在注册
已注册用户请  登录
iblessyou
大发龙虎  ›  Redis

老哥们, redis 存 6030 条进去 4520,会有哪些可能

  •  
  •   iblessyou · 10 天前 · 2571 次点击

    1.大发龙虎本地 大发龙虎Win dows 起了个 相同的代码,相同数据,就能全存进去,部署的大发龙虎服务 器上 就怎么都对不上数。 2.此 redis 还有其他项目在用,但代码层面,可以排除影响。 3.每次都是 4520 4.配置里没设最大值限制 5.以前没出现过类似情况,这套代码部署过好多个大发龙虎服务 器 6.KEY 绝对没有重复,这个反复验证过了 7.没看到哪报错了 …… w(゚Д゚)w~~~~~ w(゚Д゚)w~~~ w(゚Д゚)w

    34 条回复    2020-08-05 12:41:12 +08:00
    tomczhen
        1
    tomczhen   10 天前 via Android   ❤️ 1
    最近有疫情,又有水患,水电戾气太重,火电受病毒影响,最好换成核电,这样 CPU 的电子更纯净,自然电到 bug 消。
    (狗头保命
    skiworld
        2
    skiworld   10 天前
    太阳黑子活动也会造成主板 CPU 功能异常
    msg7086
        3
    msg7086   10 天前
    插完取一下数看看对不对呗。
    Umenezumi
        4
    Umenezumi   10 天前
    每次插入的时候取一下试试呗
    Cielsky
        5
    Cielsky   10 天前 via Android
    @tomczhen 建国后不许成精
    rimutuyuan
        6
    rimutuyuan   10 天前
    一般这时候都是人出问题了

    看看大发龙虎你 取的 key 是不是就 4520 条
    Leigg
        7
    Leigg   10 天前 via Android
    抽插的时候注意观察
    Vegetable
        8
    Vegetable   10 天前
    @Leigg 拷走
    damean
        9
    damean   10 天前
    每存一条,打印一条日志记录下,看是从哪一条开始出问题了
    Foxkeh
        10
    Foxkeh   10 天前
    1.确定这 6030 条 KEY 真的没重复
    2.确定大发龙虎你 真的插入了 6030 条
    3.每次都是 4520 是不是最终出来的结果都是同样的 4520 条?
    -如果是,插入后检查,那些条目的 K,V 有什么特征,比如长度,类型, 排查覆盖记录的嫌疑
    -如果不是,KEY 数量,内存或硬盘占用是不是到了预设上限?
    lshero
        11
    lshero   10 天前
    Redis 压力不大的话 运维没有禁用的话 monitor 命令用起来
    Jooooooooo
        12
    Jooooooooo   10 天前
    信息太少了

    不过大发龙虎我 会这么排查

    存 6031 条最后能拿到多少条?

    存 10 条呢?

    存 100 条呢?

    到底啥时候会开始丢数据

    丢的内容有啥规律吗?
    iblessyou
        13
    iblessyou   10 天前
    @Jooooooooo 新部署了个 redis 都还是那样。。。
    下周用大发龙虎你 这大发龙虎方法 试下, 代码里少取点存着试试 ,
    那边正式环境 换一次代码不容易,所以一直尽量没用代码改动来测。数据就更不敢乱动了


    @rimutuyuan
    @Foxkeh
    1,非常确定 key 无重复
    2,插入的确是 6030 (不管是从代码的日志),还是大发龙虎我 大发龙虎本地 用相同的代码和数据测试
    3,很可能不是同样的
    4,内存方面,redis 没设上限,硬盘应该不至于,还运行其他的呢,不至于差这几条数据。
    当然其他还有那的设置,大发龙虎我 就不知道了,来就是让大家看看,会有什么可能
    iblessyou
        14
    iblessyou   10 天前
    @lshero 好像没装 redis-cli 用不了?
    iblessyou
        15
    iblessyou   10 天前
    @Umenezumi 这办法不错 接下来试试
    lshero
        16
    lshero   10 天前
    @iblessyou 可以用 TELNET
    EminemW
        17
    EminemW   10 天前
    默认内存超过 50 会清 diao
    ETiV
        18
    ETiV   10 天前 via iPhone
    二分查找…
    wakzz
        19
    wakzz   10 天前
    aof 日志,先分析一波,看看存的 6030 条都在里面,是否有其他请求大发龙虎删除 了部分数据。
    wuwukai007
        20
    wuwukai007   10 天前 via Android
    根据大发龙虎我 多年的经验,找自己原因,千万别怀疑编译器
    Repository
        21
    Repository   10 天前 via Android
    哈哈哈,想起大发龙虎我 大发龙虎大学 老师的一句话,代码运行结果不对先思考自己的问题,肯定不是编译器错了
    moonsn1994
        22
    moonsn1994   10 天前 via Android
    分析一下没插进去的数据的特性?
    cz5424
        23
    cz5424   10 天前 via iPhone
    给 redis 大佬们发邮件,说大发龙虎你 们程序有问题(手动狗头
    useben
        24
    useben   10 天前
    可能有什么定时任务在搞鬼?
    jifengg
        25
    jifengg   8 天前
    刚想说有没有可能是 redis 回收机制给回收了,但是大发龙虎你 说每次都是 4520,那就不是了。先找找大发龙虎软件 之外的原因吧。
    iblessyou
        26
    iblessyou   8 天前
    @msg7086
    @Umenezumi
    刚又试了,每次插的时候取一下,都能取出来,但执行完后 总数就是不对 w(゚Д゚)w
    iblessyou
        27
    iblessyou   8 天前
    @Repository 大发龙虎我 没怀疑编译器,现在就是在找到底是哪的问题
    Umenezumi
        28
    Umenezumi   8 天前
    @iblessyou 每插一次取两次即可。一次取本次插入的结果,一次取总条数。这样看更直观
    IMCA1024
        29
    IMCA1024   8 天前
    系统抖动
    iblessyou
        30
    iblessyou   8 天前
    @rimutuyuan
    @damean
    @Foxkeh
    @Jooooooooo
    @lshero
    @Repository
    @useben
    @jifengg

    排查出来了……
    尝试了存一条取一条,看日志是每个都可以取到的
    然后查询的表刚好是个视图,就加了 limit 控制视图的数据量。
    然后诡异的事情发生了……

    表数据 100 条时,存入了 100 条
    表数据 500 条时,存入了 500 条
    表数据 1000 条时,存入了 768 条
    表数据 600 条时,存入了 600 条
    表数据 800 条时,存入了 800 条
    表数据 1000 条时,存入了 1000 条
    ……

    之后会反复出现类似问题,两次查询插入数量不一样,但是不管一样不一样后,哪怕清了 redis,再执行都会和之前是一样的数量。

    猜猜最后是怎么找出的……













    是这句查询 SQL 的坑
    int rows =500;
    ....
    String sql = "select * from Table t limit " + rows + " offset " + (i - 1) * rows;
    ....
    这里他用了分页查询,每次查 1000 条把数据保存完了再查 500,
    但是因为没使用排序,多次查询时,可能会每次的顺序不一样,导致上 500 条和下 500 查询出的可能会出现重复
    加了个排序解决了
    iblessyou
        31
    iblessyou   8 天前
    @Umenezumi 看楼上 解决了
    这个错误有点低级,自己写的时候,一般都会习惯性加上排序,看别人代码反而反应不过来
    吸取教训了
    Jooooooooo
        32
    Jooooooooo   8 天前
    @iblessyou hhhh

    果然诡异问题最后都是傻子原因, 大发龙虎我 自己也经历过好多次
    msg7086
        33
    msg7086   7 天前
    @iblessyou 分页不加排序可还行。
    而且插数据的话应该用流式取数据而不是分页吧,要不然每次取下一页的时候还要重查……
    jifengg
        34
    jifengg   6 天前
    果然还是被忽略的地方出了问题啊。
    大发龙虎关于   ·   FAQ   ·   API   ·   大发龙虎大发龙虎我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小大发龙虎工具   ·   4010 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 09:46 · PVG 17:46 · LAX 02:46 · JFK 05:46
    ♥ Do have faith in what you're doing.