• 1 已解决
    0
    为啥redis的set类型存储超过一万条数据就会性能下降?

    为啥redis的set类型存储超过一万条数据就会性能下降?

  • 1 已解决
    0
    redis大量key怎么存比较省空间

    7000w+简单key(key产生规则是笛卡尔积),vlaue基本就是1、2、3这种简单数字,怎么存比较省空间

  • 1 未解决
    0
    redis 怎么实现分布式锁?

    分布式锁一般有三种实现方式:

    1. 数据库乐观锁;

    2. 基于Redis的分布式锁;

    3. 基于ZooKeeper的分布式锁。

  • 1 未解决
    0
    redis集群间如何同步

    有两个机房A和B,机房A部署有redisA集群,机房B部署有redisB集群。这俩redis集群互为备份,数据完全一致,redisA集群如何与redisB同步数据?### 问题描述

  • 1 未解决
    0
    从REDIS和数据库一致性,更新原则的一点困惑?

    从REDIS和数据库一致性参考资料中,https://www.lagou.com/lgeduarticle/28616.html

    有这样一个规则:

    更新缓存时,先更新数据库,再将缓存的设置过期(建议不要去更新缓存内容,直接设置缓存过期)。

    其中,“建议不要去更新缓存内容”, 这个是为什么? 没怎么理解?

  • 1 未解决
    0
    如何保证队列的消息不被重复消费,用redis是怎么搞的?

    下面的第二点,没怎么理解。有劳,有大侠能解释一下么。


    【另外,还有什么别的方案么。 总觉按照参考的这几点得这么搞,吞吐量会下降。】


    7、如何保证队列的消息不被重复消费?

    这个需要灵活作答,考察的是思考力,因为消费的场景有很多,有数据库、有缓存、有第三方接口


    1.比如针对数据库,你拿到这个消息做数据库的insert操作。那就容易了,给这个消息做一个唯一主键(或者UUID),那么就算出现重复消费的情况,就会导致主键冲突,避免数据库出现脏数据。

    2.再比如redis缓存,你拿到这个消息做redis的set的操作,那就容易了,不用解决,因为你无论set几次结果都是一样的,set操作本来就算幂等操作。

    3.再比如第三方接口,需要确定两点,第三方接口程序是有去重能力的,那么脏一点直接丢数据过去,如果没有去重能力,还是需要我们来写程序去重,就是第2点的办法。


  • 1 未解决
    0
    redis的单线程模型如何理解?

    常说redis是单线程模型。
    但当有多个redis-cli连接时,那不是多线程了吗?

    例如:
    客户端1,使用blpop进行阻塞式获取空列表的值时,会阻塞当前客户端。但客户端2还能连接,并且通过向list插入值,客户端1响应刚客户端2插入值。

    我们常用的redis是单线程主要体现在哪里呢?

  • 1 未解决
    0
    redisson惊群效应是怎么解决的

    比如现在某个服务有200个节点,这200个节点同时收到请求要去拿分布式锁.
    结果必然是只有一个节点可以拿到锁,其它节点全是无效请求.如此重复每次都有大量请求是无效的(拿不到锁,被其它节点先下手为强),但是这个访问压力是已经给到了redis上.
    redisson是如何解决这个问题的?
    前些日子面试被问到,我自己看源码的能力菜鸡,所以希望大佬能结合源码通俗讲一下,或者给一个资料(ps:我自己百度查不到相关博客)…

  • 1 未解决
    0
    Jedis连接redis无法连接问题

    Jedis连接redis无法连接问题

    本人初学redis,如果问题过傻,请多担待。

    自己购买的阿里云服务器。

    java中使用Jedis连接服务器

    代码

    attachments-2020-02-cfW1zDTF5e51095cb9a8e.png


    报错信息

    attachments-2020-02-ASSWVpCv5e51096ad96f8.png

    网上查了很多解决方案:

    1.修改redis.conf ,注释bind,修改 protected-mode 为no,

    2.关闭了防火墙

    都依然无法连接。


    还会出现连接timeout的问题。


    我有几个问题,请了解的人解析一下:

    1.代码new Jedis(ip,port),

    ip是什么?电脑IP?服务器公网IP?redis默认的127.0.0.1?redis.conf配置文件中bind指定的ip?


    我在xshell中是可以set和get的

    为什么可以执行

    redis-cli -h 127.0.0.1 -p 6379

    redis-cli -h 127.0.0.2 -p 6379

    redis-cli -h 127.0.0.3 -p 6379 

    都可以set 和get,请问这到底是什么原理?我在这么多的不同的ip下set那么多的值,我在java端怎么取?


    3.redis.conf配置文件中的bind 的具体是什么作用,网上说不注释的话就只能通过指定的ip访问。我换了不同的ip,重新启动查看进程,就会无法显示进程,直接注释掉又可以显示进程。

  • 1 未解决
    0
    rediscluster配置的database无效

    请教老师和同学们一个问题:在yml文件里面配置了rediscluster集群的database为1,但是LettuceConnectionFactory.getDatabse = 0,请教原因 如何配置才可以了?直接代码里面重新设置LettuceConnectionFactory的database好像也没生效


    attachments-2020-02-Y0CZwvHi5e4fa650cd6a3.png

    attachments-2020-02-xgam1WpX5e4fa65de6d2b.png

    后台断点可以看到

    private final RedisProperties properties;


    这个properties里面 database = 1是已经获取到配置文件的这个1了的,但是每次这边发现用redistemplate去存的值成功了 但是都是db0 ,不是db1.麻烦看看 谢


    备注:rediscluster4 \springboot2.1.6\连接池lettuce

  • 1 未解决
    0
    从REDIS和数据库一致性,更新原则的一点困惑?

    从REDIS和数据库一致性参考资料中,https://www.lagou.com/lgeduarticle/28616.html

    有这样一个规则:

    更新缓存时,先更新数据库,再将缓存的设置过期(建议不要去更新缓存内容,直接设置缓存过期)。

    其中,“建议不要去更新缓存内容”, 这个是为什么? 没怎么理解? 请大侠指点。

  • 1 未解决
    0
    一个项目中可以jedis和redisson共用吗
  • 1 未解决
    0
    redission 监听key过期事件异常

    redission 监听key过期事件异常

    问题描述

    redission 监听key过期事件异常


    问题出现的环境背景及自己尝试过哪些方法

    采用redis客户端手动监听 SUBSCRIBE keyevent@0:expired ,key过期事件监听成功

    redission 监听Redis普通发布订阅消息成功

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    RTopic topic = redisson.getTopic(“keyevent@0:expired”,new SerializationCodec());

    topic.addListener(String.class, new MessageListener() {

    @Override

    public void onMessage(CharSequence charSequence, String s) {

    System.out.println(“onMessage:”+charSequence+"; Thread: "+Thread.currentThread().toString());

    System.out.println(s);

    }

    });


    你期待的结果是什么?实际看到的错误信息又是什么?

    期待结果:通过监听器获取订单未支付取消的key,回滚库存

    错误信息:ERROR 62868 — [isson-netty-2-7] o.r.client.handler.CommandPubSubDecoder : Unable to decode data. channel: [id: 0x3c4787b6, L:/127.0.0.1:60779 - R:redis.mall.com/127.0.0.1:6379], reply: ReplayingDecoderByteBuf(ridx=54, widx=54)


    java.io.EOFException: null

    at java.io.ObjectInputStreamPeekInputStream.readFully(ObjectInputStream.java:2681) ~[na:1.8.0_231] at java.io.ObjectInputStreamPeekInputStream.readFully(ObjectInputStream.java:2681) [na:1.8.0 

    2

    ​ 31]atjava.io.ObjectInputStreamBlockDataInputStream.readShort(ObjectInputStream.java:3156) ~[na:1.8.0_231]

    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:863) ~[na:1.8.0_231]

    at java.io.ObjectInputStream.(ObjectInputStream.java:358) ~[na:1.8.0_231]

    at org.redisson.codec.SerializationCodec$1.decode(SerializationCodec.java:53) ~[redisson-3.11.1.jar:3.11.1]

    at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:384) [redisson-3.11.1.jar:3.11.1]

    at org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:428) [redisson-3.11.1.jar:3.11.1]

    at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:393) [redisson-3.11.1.jar:3.11.1]

    at org.redisson.client.handler.CommandPubSubDecoder.decodeCommand(CommandPubSubDecoder.java:76) ~[redisson-3.11.1.jar:3.11.1]


  • 1 未解决
    0
    Redis分布式锁

    用Redis实现分布式锁,key过期了,但是请求方法还没执行完,怎么解决?### 问题描述


    问题出现的环境背景及自己尝试过哪些方法

    1 刷新key的过期时间,时间怎么合理设计

    2 是否还有更好的解决方案


    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)


    你期待的结果是什么?实际看到的错误信息又是什么?