- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在学习 Redis for Java 是我认为我真正缺少的关于 Redis api 的东西。
假设我们有以下用于创建连接的代码:
RedisClient redisClient = RedisClient
.create("redis://password@localhost:6379/");
StatefulRedisConnection<String, String> connection
= redisClient.connect();
这为键类型 String 和值类型 String 定义了一个客户端。
现在,当我需要处理多个 Redis 对象时,我该怎么做,不仅是 String/String,还包括不同类型的多个集合?
我应该为每个连接创建不同的连接吗?
我曾尝试使用响应式(Reactive)模板,但遇到了同样的问题,我会创建多个不同类型的实例。
在处理交易时,我不明白如何跨单个模板使用交易。
例如,我想将一个序列化的帖子插入到 Redis 存储中,例如:
Key postId | Value <post>
但在一次交易中,我还想将 postId 添加到代表提要的集合中:
Key topic | Value <set with post Id's>
我找到的所有示例都在同一模板上执行事务,但我不知道如何继续。
指针表示赞赏。
最佳答案
定义 StatefulRedisConnection
时的 String, String
部分仅适用于正在使用的编解码器。当你定义:
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisClient
使用预定义的 StringCodec
在 java 客户端和 Redis 之间传输数据。
如果您想在 Redis 和客户端之间来回传输数据时更改键和值的编码和解码方式,则可以在此处使用自定义编解码器。有关 RedisCodec 的更多详细信息 here .
为了你的问题。如果键和值都是 String,您仍然应该能够对不同类型的操作使用相同的连接
对于 Object
类型的键和值,您应该将它们序列化并将序列化结果传递给上述连接。
这是一个示例片段(没有运行/测试这个)。
RedisClient redisClient = RedisClient.create("redis://password@localhost:6379/0");
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisCommands<String, String> syncCommands = connection.sync();
syncCommands.multi();
syncCommands.sadd("topics", "value1", "value2", "value3"); // Puts topics in the set
syncCommands.set("posts", "serialized post"); // Puts serialized post
syncCommands.exec();
希望这对您有所帮助。
关于java - Lettuce 多个响应式 Redis 存储和跨存储交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53459068/
我需要使用 Azure Redis 集群、密码、SSL 以及管道支持。 到目前为止我一直在使用 Jedis,但它缺乏对集群+ssl+密码+管道组合的支持。 我尝试了生菜 ( https://githu
我试图让 Lettuce 在旧主机失败后连接到新晋升的主机(前奴隶)。但是所有写入都停止了。故障主机重新连接后,写入继续,现在作为从属主机。并且它继续写信给新的主人(以前的奴隶)。 我尝试设置定期拓扑
在我的服务中,我尝试使用 Lettuce 客户端的 ReadFrom 方法确保强一致性。我正在写作,然后进行阅读。在客户端配置中,我已将 ReadFrom 设置为 SLAVE_PREFFERED。 L
本文整理了Java中io.lettuce.core.ZStoreArgs类的一些代码示例,展示了ZStoreArgs类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Mav
我正在尝试使用 Spring Data Redis(版本:1.1.x)为我的 Redis 客户端(生菜客户端版本:2.3.3)设置一个连接工厂,但在将所有内容连接在一起时遇到了一些麻烦。 这是我的配置
我喜欢使用 Lettuce 来定义测试用例。在许多情况下,很容易编写 Lettuce 场景,使其可以原子方式运行或作为功能中其他场景的一部分运行。然而,我发现 Lettuce 也是一个有用的工具,可以
我们已经定义了 Lettuce 客户端连接工厂,以便能够连接到定义自定义套接字和命令超时的 Redis: @Bean LettuceConnectionFactory lettuceConnectio
前提:搭建好redis集群环境,搭建方式请看:http://www.zzvips.com/article/29914.html 1. 新建工程,pom.xml文件中添加redis支持
需要使用lettuce在redis-cluster模式下运行一批命令。对于应该在一个分区中运行的命令,我希望在一个节点中顺序运行它们。 据我所知,Lettuce 可以通过将 AutoFlushComm
有经验的人可以同时使用这两种方法吗 Lettuce和 Pyccuracy描述它们在功能和用途方面的差异? 来自Lettuce Overview文档: Lettuce is a very simple
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
尝试运行简单的生菜测试场景(来自 here )。我得到这些: Traceback (most recent call last): File "C:\Python27\lib\site-packa
我正在学习 Redis for Java 是我认为我真正缺少的关于 Redis api 的东西。 假设我们有以下用于创建连接的代码: RedisClient redisClient = RedisCl
redisListCommands.brpop(0, queueName) 我已将超时设置为 0(即没有超时)。为什么这命令带来 io.lettuce.core.RedisCommandTimeout
我正在尝试查找有关如何配置和使用 Lettuce 的引用资料具有客户端一致性哈希的 Redis 客户端。 这种分片方法在 ShardedJedis 中实现来自 Jedis 客户端并在 Redis pa
我可以使用 Lettuce 管理 redis 通知吗?我找不到任何示例或文档。当元素在 Redis 中过期时,我只需要在我的 Java 代码中有一些通知/回调。 让我举个例子...对不起,阅读 Let
我在 Akka 中使用 redis,所以我不需要阻塞调用。生菜内置了异步 future 调用。但是 Jedis 是 Redis 推荐的客户端。有人可以告诉我我是否以正确的方式使用它们。如果是的话,哪个
本文整理了Java中io.lettuce.core.ZStoreArgs.sum()方法的一些代码示例,展示了ZStoreArgs.sum()的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中io.lettuce.core.ZStoreArgs.max()方法的一些代码示例,展示了ZStoreArgs.max()的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中io.lettuce.core.ZStoreArgs.()方法的一些代码示例,展示了ZStoreArgs.()的具体用法。这些代码示例主要来源于Github/Stackoverfl
我是一名优秀的程序员,十分优秀!