- 浏览: 188382 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. 使用Jedis连接Redis
网址: https://redis.io/clients
2. Jedis连接池使用
网址: https://redis.io/clients
新建项目 new maven project new simple maven project group Id: com.andrew Artifact Id: JedisDemo pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.andrew</groupId> <artifactId>JedisDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> </dependencies> </project> JedisTest.java package com.andrew.test; import redis.clients.jedis.Jedis; public class JedisTest { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.18.4", 6379); // jedis.auth("123456"); jedis.set("name", "andrew"); String value = jedis.get("name"); System.out.println(value); jedis.close(); } }
运行报错 Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out at redis.clients.jedis.Connection.connect(Connection.java:207) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) at redis.clients.jedis.Connection.sendCommand(Connection.java:126) at redis.clients.jedis.BinaryClient.set(BinaryClient.java:110) at redis.clients.jedis.Client.set(Client.java:47) at redis.clients.jedis.Jedis.set(Jedis.java:120) at com.andrew.test.JedisTest.main(JedisTest.java:9) Caused by: java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at redis.clients.jedis.Connection.connect(Connection.java:184) ... 6 more 解决方法 配置下防火墙 开一个6379端口权限 [root@localhost ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent [root@localhost ~]# firewall-cmd --reload
运行报错 Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect at redis.clients.jedis.Connection.connect(Connection.java:207) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) at redis.clients.jedis.Connection.sendCommand(Connection.java:126) at redis.clients.jedis.BinaryClient.set(BinaryClient.java:110) at redis.clients.jedis.Client.set(Client.java:47) at redis.clients.jedis.Jedis.set(Jedis.java:120) at com.andrew.test.JedisTest.main(JedisTest.java:9) Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at redis.clients.jedis.Connection.connect(Connection.java:184) ... 6 more 解决方法 配置下 redis配置文件 [root@localhost redis]# vi /usr/local/redis/redis.conf 将bind 127.0.0.1备注掉 配置完后重启服务 [root@localhost ~]# cd /usr/local/redis/ [root@localhost redis]# bin/redis-cli shutdown [root@localhost redis]# bin/redis-server redis.conf
运行报错 Exception in thread "main" redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside. at redis.clients.jedis.Protocol.processError(Protocol.java:127) at redis.clients.jedis.Protocol.process(Protocol.java:161) at redis.clients.jedis.Protocol.read(Protocol.java:215) at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340) at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239) at redis.clients.jedis.Jedis.set(Jedis.java:121) at com.andrew.test.JedisTest.main(JedisTest.java:9) 解决方法 因为远程连接redis redis自我保护 拒绝访问; 方法一:直接去掉自我保护功能(不推荐) [root@localhost redis]# vi /usr/local/redis/redis.conf 将protected-mode yes改为no 重启下redis服务 [root@localhost ~]# cd /usr/local/redis/ [root@localhost redis]# bin/redis-cli shutdown [root@localhost redis]# bin/redis-server redis.conf 运行结果: andrew 将属性改回去 方法二:设置redis连接密码(推荐) [root@localhost redis]# bin/redis-cli 设置密码 123456 127.0.0.1:6379> config set requirepass 123456 OK 退出 127.0.0.1:6379> quit 登陆验证 [root@localhost redis]# bin/redis-cli 127.0.0.1:6379> auth 123456 OK 设置成功 代码中增加 jedis.auth("123456"); 运行结果: andrew
2. Jedis连接池使用
JedisPoolTest.java package com.andrew.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisPoolTest { public static void main(String[] args) { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(100); // 设置最大连接数 config.setMaxIdle(10); // 设置最大空闲连接数 JedisPool jedisPool = new JedisPool(config, "192.168.18.4", 6379); Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.auth("123456"); jedis.set("name", "andrew"); String value = jedis.get("name"); System.out.println(value); } catch (Exception e) { e.printStackTrace(); } finally { if (jedis != null) { jedis.close(); } if (jedisPool != null) { jedisPool.close(); } } } } 运行结果: andrew
相关推荐
linux中安装redis和jedis及jedispool; redis安装所遇到的问题;
总结,Java通过Jedis连接Redis提供了高效的数据交互手段,Jedis连接池能优化资源利用,而对字符串和哈希的操作满足了多种存储需求。在Linux环境中,如CentOS7,可以便捷地部署和管理Redis服务器,从而在实际项目中...
三、Jedis连接池 1. **连接池概念**:连接池是一种对象池设计模式,主要用于管理数据库连接。它预先创建一定数量的连接,当需要时可以从池中获取,使用完毕后归还到池中,而不是直接关闭连接。 2. **JedisPool**:...
例如,可以使用`JedisPool`类创建连接池。此外,对于分布式环境,Jedis还支持Sentinel和Cluster模式,以实现高可用性和扩展性。 总的来说,通过`jedisTest`我们可以学习到如何使用Jedis进行Redis的基本操作,而`...
使用Java操作Redis需要jedis-2.1.0.jar,如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar使用Java操作Redis需要jedis-2.1.0.jar,如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar
java源代码(基于spring-boot)工程介绍:(Jedis存取redis的测试)1、直接连接redis,通过jedis实例直接连接redis,并存入和获取数据2、连接池JedisPool方式连接redis,通过连接池连接redis,可配置最大连接数、...
在实际开发中,为了提高性能和资源利用率,通常会使用连接池来管理Jedis实例。例如,使用`JedisPool`可以创建一个连接池: ```java JedisPoolConfig poolConfig = new JedisPoolConfig(); JedisPool jedisPool = ...
1.全网最强最好用redis 封装连接池,redis 配置详解 2.jar 内置最全 最安全的两种redis 连接池 创建方式(synchronized and look), 3.通过了自己公司生产环境的检测 4.使用方法:只需要将jar 放入项目 lib 下面 ...
6. 配置优化:在实际使用中,你可以根据项目需求调整Jedis客户端的配置,如连接池设置、超时时间、重试策略等,以提高性能和稳定性。 7. 注意事项:在并发环境下使用Jedis时,推荐使用连接池(如Lettuce客户端提供...
5. **连接池管理**:为了提高性能和资源利用率,通常会使用连接池(如JedisPool)管理多个Jedis连接,避免频繁地创建和关闭连接。 6. **数据持久化**:Redis可以通过RDB或AOF方式进行数据持久化,确保数据安全。...
9. **连接池管理**:为了提高性能和资源管理,Jedis提供了连接池功能,可以通过配置实现连接的复用。 10. **脚本操作**:利用EVAL命令,Jedis可以执行Lua脚本,这是Redis提供的原子操作方式,常用于复杂的数据操作...
在配置Jedis连接器时,通常使用JedisConnectionFactory。JedisConnectionFactory可以接受不同的Redis配置,包括单机配置和哨兵配置。与Lettuce类似,也可以设置连接池、密码和其他连接相关参数,以适应不同的应用...
Jedis通过连接池管理与Redis服务器的连接,以提高性能和资源利用率。同时,Jedis还支持Sentinel和Cluster,可以方便地在高可用和分布式环境中使用。 在实际应用中,选择JRedis还是Jedis通常取决于项目需求。如果...
2. 配置连接池:使用`JedisPoolConfig`和`JedisPool`,以更好地管理和复用连接。 3. 执行命令:如`jedis.set("key", "value")`来设置键值对,`jedis.get("key")`来获取值。 4. 关闭连接:操作完成后,记得关闭Jedis...
Redis是一种高性能的键值对数据库,常用于缓存和数据持久化。Jedis是Java语言中广泛使用的Redis...在实际项目中,注意连接池的使用以提高性能,并根据需求选择合适的数据类型。同时,定期备份数据,确保数据的安全性。
- **连接池支持**: 通过连接池管理机制,Jedis能够有效地管理和复用Redis连接,提高性能和资源利用率。 - **同步与阻塞I/O**: Jedis采用同步阻塞的方式进行I/O操作,这意味着每次方法调用都需要等待I/O完成才能继续...
通过以上步骤,我们成功地在Spring MVC项目中整合了Redis,并使用连接池优化了性能。这种整合方式不仅提高了代码的可读性和可维护性,也充分利用了Redis的高效性能,为应用程序带来了更好的用户体验。在实际开发中,...
通过连接池,可以重复使用已建立的Redis连接,避免了频繁创建和关闭连接的开销。 `jedis-2.9.0.jar`是Jedis的库文件,它包含了与Redis通信的所有必要类和方法。Jedis提供了多种操作Redis数据结构的API,如设置和...
**Jedis连接池配置示例**: ```java Properties props = new Properties(); props.setProperty("maxTotal", "100"); props.setProperty("maxIdle", "50"); props.setProperty("minIdle", "20"); JedisPoolConfig ...