spring-data-redis的问题

发布于 2022-09-01 13:02:47 字数 1217 浏览 9 评论 0

spring的xml配置

    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="${redis.maxIdle}" />
        <property name="maxTotal" value="${redis.maxTotal}" />
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
        <property name="testOnBorrow" value="${redis.testOnBorrow}" />
    </bean>
<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
        p:host-name="127.0.0.1" p:port="6379" p:use-pool="true" p:pool-config-ref="poolConfig"/> 

junit代码

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Resource(name="redisTemplate")
    private ValueOperations<String, String> ops;

    @Test
    public void testStringRedisTemple() {
        System.out.println(redisTemplate);
        System.out.println(ops);
        //这里报错
        ops.set("room", "622");
    }

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

零時差 2022-09-08 13:02:47

问了大神才知道是jedis版本太高了,spring-data-redis是1.5的版本,jedis是2.7.2的版本,jedis版本太高
错误在这:

SEND_COMMAND = ReflectionUtils.findMethod(Connection.class, "sendCommand", new Class[] { Command.class,
                byte[][].class });
        ReflectionUtils.makeAccessible(SEND_COMMAND);

jedis 2.7.0 的connection类 :

protected Connection sendCommand(final Command cmd, final byte[]... args)

而2.7.2版本以变:

protected Connection sendCommand(final ProtocolCommand cmd, final byte[]... args)

所以SEND_COMMAND得到为null

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文