问题标签 [jedis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1425 浏览

java - New Jedis Client Does Not Work In Static Java Method

Why does this same piece of code have different results?

I'm using Jedis 2.1.0 to create connections to Redis.

METHOD A:

METHOD B:

I'm thinking the difference is Method A has been tucked away in a static method for ease of reuse, and hence should have the same effect as Method B when invoked.

Instead, I get an exception when I use Method A. Method B works fine!

METHOD A Exception:

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect at redis.clients.jedis.Connection.connect(Connection.java:134) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:69) at redis.clients.jedis.Connection.sendCommand(Connection.java:86) at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:82) at redis.clients.jedis.Jedis.ping(Jedis.java:34) at org.tripodwire.esme.receiver.ReceiverProducer.produceTestJedis(ReceiverProducer.java:168) at org.tripodwire.esme.entry.Entry.main(Entry.java:25)

0 投票
3 回答
4573 浏览

java - Jedis 是否支持异步操作

我正在使用 Jedis(Java 客户端)与 Redis 服务器通信。我有 3 个 Redis 实例在三个不同的节点上运行。我想从 3 个 Redis 实例中“获取”(读取)一些记录。我想并行发出这些“获取”(读取),然后对接收到的数据进行一些处理并形成最终输出。

在java中执行此操作的最佳方法是什么?

一种方法是创建 3 个线程并在每个线程中(同步)发出“get”(读取)。等待所有 3 个命令完成,然后合并结果。

Jedis 是否具有异步发出 3 个“获取”(与此相关的任何命令)的机制,并带有回调功能?


我有 3 个不同的 Redis 实例。那么您是否建议使用“ShardedJedisPipeline”(jedis/tests/ShardedJedisPipelineTest.java)与这些 Redis 实例并行交互?

普通的 Jedis 管道 (jedis/tests/PipeliningTest.java),只是将多个命令发送到单个 Redis 实例,以便它们在 Redis 服务器上一个接一个地执行(以及最后可用的所有响应)。

所以我假设我必须使用“ShardedJedisPipeline”。但这有两个限制: 1. 我想在 3 个 Redis 实例上并行执行 Lua 脚本,即“eval”。2. 我不希望分片(Jedis 使用的一些哈希算法)分发数据或自己(使用它的算法)从实例中读取数据。我们有不同的数据分发策略。所以我希望能够指定一条记录应该存储在哪个redis实例中,并相应地从哪里读取它。keyTags 似乎提供了这种机制,但不确定如何将其与“eval”一起使用。

0 投票
1 回答
993 浏览

java - Is the returned proxy object of 'Proxy.newProxyInstance()' thread safe in java?

I'm created a proxy class for Jedis, then it can return resource to the pool and mark the broken resource automatically.

then use:

I know that the JedisPool is thread safe.

But is the "jc" object thread safe? Is the proxy object of Proxy.newProxyInstance() thread safe?

I have viewed the source code of Proxy, the proxy object was create by JVM, I'm not familiar with JVM.

Thanks!

0 投票
1 回答
1401 浏览

tomcat - Redis / Jedis - Tomcat 挂起 - 在 <5c1a77ba> 上等待(一个 org.apache.commons.pool.impl.GenericObjectPool$Latch)

我有以下问题:

我的 Tomcat 因以下线程转储而挂起:

我的应用程序将 Redis DB 与 Jedis 客户端一起使用。我有大约 2K 请求/秒。几个小时后,每个线程都在等待。

会不会是 DBCP 问题?有没有其他方法可以使用 Redis / Jedis 创建连接池?

谢谢

0 投票
0 回答
1894 浏览

redis - 使用多个 JedisPool

最初,当我使用 1 JedisPool 与 Redis 服务器(在服务器上运行的单个 redis 实例)通信时,我看到我的 200K 查询需要 15 秒才能完成。对于每个查询,我执行以下操作:

JedisPool 创建使用:

但是,当我将 8 个 JedisPools 用于同一台服务器(相同的 redis 实例)并以循环方式使用它们时,我看到 200K 查询在大约 8-10 秒内处理(之前使用 1 个 JedisPool 需要 15 秒)=> 相当大的改进.

这是什么原因?我们应该使用的最佳 JedisPool 数量是多少?

0 投票
1 回答
10637 浏览

java - redis pub sub 与 jedis , sub 崩溃并出现错误

全部

我已经安装了最新的 Redis 2.4.16 并尝试将其 Pub/Sub 系统与 java 一起使用。我每秒都在向频道发送一条消息。发布者没有问题,但订阅者因消息而崩溃

例外:

这是我的代码:

出版商:

订户:

池配置:

为了安装 Redis,我只是使用了命令

在此之后我没有使用./install_server.sh

Jedis版本为2.1.0,平台为Mac OS X。

注意:我注意到订阅者在启动后大约 30 秒崩溃。

0 投票
2 回答
22634 浏览

jedis - Jedis 可以获取/设置 Java POJO 吗?

我使用 Jedis 作为 java 客户端连接到 Redis 服务器。

问题1:似乎没有获取/设置 Object < 的方法?扩展可序列化> ? 所有的值都必须是 String 还是 byte[]?

其他客户端,如“JRedis”和 Spymemcache(用于 memcached 服务器)可以。

问题2:如果我使用ShardedJedis,它不能设置auth/password?而 Jedis 类可以(使用 auth(String password))。

0 投票
0 回答
499 浏览

redis - BinaryJedis 的管道支持

在处理原始数据时,我正在使用 BinaryJedis 来存储和检索数据。使用 Jedis 管道,我可以将数据以 byte[] 形式保存在 redis 列表中。但是当我尝试使用“lindex”检索这个列表数据(一个条目)时,我没有找到任何接口,即 lindex 将 byte[] 作为输入但返回 Response

为什么没有返回Response的接口

0 投票
1 回答
2016 浏览

redis - 绝地武士与 JOhm

据我了解,使用 JOhm 和 Jedis,可以在 redis 中/从 redis 中存储/检索 java 类对象。我的一个问题是,JOhm 是否也将 java 对象保留在内存中,以便下次需要该对象(与键关联)时,它会从内存中返回,而不是每次都从 redis 中读取?

0 投票
9 回答
84394 浏览

java - 无法从池中获取资源(SocketTimeoutException:)

我正在运行多个工作线程(大约 10 个)来访问来自 redis Q 的数据。
因为我正在为Jedis Client使用无限超时。

我仍然收到错误“无法从池中获取资源”。堆栈跟踪如下所示。