V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
cMoon
V2EX  ›  Redis

redis 有时取不到值

  •  
  •   cMoon · Nov 10, 2023 · 2743 views
    This topic created in 911 days ago, the information mentioned may be changed or developed.

    背景: A 调用服务 B,然后每秒查一次 redis 去获取值. B 收到 A 的请求后将数据写入 redis.

    出现的情况是有时候 B 已经将数据写入 redis 了,但是 A 读不到. 查询写入使用的同一个 StringRedisTemplate.

    有时候查不到就很迷


    顺便吐槽下华为云 -- huaweicloud.csdn.net
    点下阅读全文就自动获取手机号发送注册验证码..

    13 replies    2023-11-13 10:55:59 +08:00
    WashFreshFresh
        1
    WashFreshFresh  
       Nov 10, 2023
    redis 集群?同步会不会有问题
    cMoon
        2
    cMoon  
    OP
       Nov 10, 2023
    @WashFreshFresh #1 没集群
    WashFreshFresh
        3
    WashFreshFresh  
       Nov 10, 2023
    排查不到就先加个日志吧,b 写进去后立即直接读出来看看。
    tianwaifeixian
        4
    tianwaifeixian  
       Nov 10, 2023
    异步问题?看下 A 调用 B 是不是异步调用的
    cF06myaQ57WHKMBv
        5
    cF06myaQ57WHKMBv  
       Nov 10, 2023
    怎么证明在 A 读取的时候,B 已经将数据写入 redis 了
    cMoon
        6
    cMoon  
    OP
       Nov 10, 2023
    @tianwaifeixian #4 异步的,所以才通过缓存读数据
    @ljtfdt #5 图形化界面已经查出数据了,但是 A 还是一直获取 null
    wu00
        7
    wu00  
       Nov 10, 2023
    怎么证明”每秒查一次 redis“真的查了而且一直在查,题外话:这里设计有点离谱...
    Habyss
        8
    Habyss  
       Nov 10, 2023
    偶发吗? 偶发的话, 在代码中能影响的也就 key, 不同库, 时间差了
    1. key 是固定的吗, 两边服务都打印一下用来读 redis 的 key, 看一下是否一致
    2. 看一下两边用的是不是同一个库
    3. 在 1 的基础上把时间也打印一下
    cMoon
        9
    cMoon  
    OP
       Nov 10, 2023
    @WashFreshFresh #3
    @tianwaifeixian #4
    @ljtfdt #5
    @wu00 #7
    @Habyss #8
    最新发现,服务做了集群连接同一个 redis,当查询/插入都在同一台服务器时没有问题,不同服务器时就查询不到了

    redis 配置都是一样的
    chainsR
        10
    chainsR  
       Nov 11, 2023 via iPhone
    别光看配置文件,不一定准确,在启动时直接执行 SaManager.getSaTokenDao().set("name", "value", 100000);, 随便写入一个值,看看能不能根据你的预期写进这个 Redis ,如果能的话才能证明代码连接的 Reids 和你用管理工具看到的 Redis 是同一个,再进行下一步排查。
    chainsR
        11
    chainsR  
       Nov 11, 2023 via iPhone
    satoken 也有这样的说明
    litchinn
        12
    litchinn  
       Nov 11, 2023
    同一台机器没问题,不同的查不到,写入后外部 GUI 能查到,配置一样

    你这个配置不会是配得例如 127.0.0.1 或者 docker 网络指向自己的 ip 吧

    redis 上查询下 client 链接情况吧先
    jifengg
        13
    jifengg  
       Nov 13, 2023
    华为云那个吐槽确实是,前几天也是看一个文章,点一下查看全文,就发验证码来了,我还以为有人要盗号了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3037 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 13:23 · PVG 21:23 · LAX 06:23 · JFK 09:23
    ♥ Do have faith in what you're doing.