草庐IT

redis - Jedis 和 JedisCluster 的通用接口(interface)

我看到Jedis和JedisCluster没有实现通用的java接口(interface),我想知道为什么。我的软件将在不同的环境中运行,Redis可能会或可能不会在集群模式下运行,那么我如何使用Jedis实现一段可以在两种环境中运行的通用代码?客户端将只执行基本操作,我想将集群操作隐藏在库中而不公开它们。关于模块化设计的任何想法?谢谢。 最佳答案 看起来这可能就是您的答案redis.clients.jedis.JedisCommands。您可以将此接口(interface)用作方法的参数,并传入Jedis或JedisCluster

multithreading - 具有 Jedis 连接工厂、Redis 独立配置和多线程的 Spring Redis 模板

我在多线程环境中使用SpringRedis模板。一个线程将数据保存到Redis中,另一个线程(调度程序)从中获取数据。JedisConnectionFactory在redis模板中使用。下面是获取redis连接的代码片段:JedisConnectionFactoryjedisConnectionFactory(){JedisConnectionFactoryjedisConnectionFactory=null;try{RedisStandaloneConfigurationredisStandaloneConfiguration=newRedisStandaloneConfigura

java - 检查值是否存在并返回 Jedis Redis

我正在使用JedisRedis客户端,希望能够确定键是否存在,如果存在则获取值。我目前正在使用if语句来检查key是否存在,如果不存在则返回null。我假设这不是最好的做事方式,因为您需要多次访问数据库。有没有办法在获取值的同一步骤中检查键是否存在?一些示例代码:try{if(!jedis.exists(name)){returnnull;}returnjedis.hgetAll(name);}catch(JedisConnectionExceptionexception){//Dostuff}finally{//Cleanup} 最佳答案

java - 使用 Jedis Pool 时管道破裂

我正在使用Jedis在Redis中执行大量插入/读取操作。Redis服务器使用默认配置。当我开始使用几个线程时出现问题,异常是:redis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:Pipequebrado(Writefailed)我已经搜索了很多有关此问题的信息,但找不到原因或已解决。我用来执行这些测试的代码如下:publicclassRedisFacade{privatestaticRedisFacadeinstancia=null;//InitializetheConnec

redis - 使用 jedis 客户端从 spring 中获取 aws Redis 集群

我已经使用jedis将redis集成到我的springweb应用程序中(redis由AWSElastic缓存提供支持)。使用单个jedis连接工厂写入和读取单节点时工作正常。我现在需要将它扩展到一个集群,以便写入主节点并从辅助节点读取。即,如果一个出现故障,那么AWS会自动进行复制,在这种情况下,我将连接的主机名将会更改。如何读取出现的新节点?我如何从spring容器(我的意思是XML文件)连接到它?请任何人提出有用的建议,以实现上述情况。如果有任何可能有助于解决上述问题的链接或代码,我将不胜感激。截至目前,我正在使用一个连接工厂,使用jedis和redis模板进行操作。

java - Jedis key 过期

我正在尝试用spring来理解redis/jedis。我被困在某个地方,在一段时间后我无法使我的key过期。有人可以帮忙吗?publicclassSessionCacheRepositoryImplimplementsSessionCacheRepository{privatestaticfinalStringKEY="Session";privateRedisTemplateredisTemplate;privateHashOperationshashOperations;@AutowiredpublicSessionCacheRepositoryImpl(RedisTemplate

redis - Jedis 资源实例用完,Web 应用程序 block

我正在运行一个使用Jedis访问Redis数据库的Tomcat应用程序。不时形成整个应用程序block。通过使用JavaMelody监控Tomcat,我发现问题似乎与对象请求Jedis实例时的JedisPool有关。catalina-exec-74java.lang.Object.wait(Native Method)java.lang.Object.wait(Object.java:503)org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)redis

java - redis pub sub with jedis , sub crashes with error

全部我已经安装了最新的Redis2.4.16并尝试将其Pub/Sub系统与java一起使用。我每秒都会向channel发送一条消息。发布者没有问题,但订阅者崩溃并显示消息异常:redis.clients.jedis.exceptions.JedisDataException:ERRonly(P)SUBSCRIBE/(P)UNSUBSCRIBE/QUITallowedinthiscontextatredis.clients.jedis.Protocol.processError(Protocol.java:59)atredis.clients.jedis.Protocol.process

redis - Jedis Client的RedisTemplate如何在一次调用中获取多个列表值

我正在使用RedisTemplate获取数据并将其存储为列表。当我存储数据时-我将其存储为redisTemplate.opsForList().rightPush("key1","value11");redisTemplate.opsForList().rightPush("key1","value12");redisTemplate.opsForList().rightPush("key2","value21");redisTemplate.opsForList().rightPush("key2","value22");现在我想在一次调用中获取两个键的列表值我可以单独得到redis

java - Jedis ClassNotFound 和 NoClassDefFoundError

我为数据可视化工具开发了一个插件。现在我想在里面使用redis。当我尝试从here中获取的以下redis代码时在另一个项目中(不在我的插件中)它运行良好。//ConnectingtoRedisserveronlocalhostJedisjedis=newJedis("localhost");System.out.println("Connectiontoserversucessfully");//checkwhetherserverisrunningornotSystem.out.println("Serverisrunning:"+jedis.ping());但是当我在我的插件中使用