ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jedis客户端使用

2019-09-19 19:07:04  阅读:300  来源: 互联网

标签:myhash JedisPool jedis 使用 Jedis config 连接池 客户端


Jedis客户端使用
Jedis是redis的java版本的客户端实现,Jedis提供了完整Redis命令

一 基本使用
1导入jar文件
Maven方式

redis.clients
jedis
2.8.2

2 代码
//创建jedis对象
Jedis jedis = new Jedis(“127.0.0.1”, 6379);
//设置密码
jedis.auth(“redis”);
//设置key-value数据
jedis.set(“name”, “zhangsan”);
//根据key值获取数据
System.out.println(jedis.get(“name”));
jedis.set(“age”, “12”);
//数据自增
jedis.incr(“age”);

jedis.hset(“myhash”, “name”, “lisi”);
Map<String, String> map = new HashMap<>();
map.put(“age”, “12”);
map.put(“qq”, “1234567”);
jedis.hmset(“myhash”, map);
String hget = jedis.hget(“myhash”, “name”);
Map<String, String> hgetAll = jedis.hgetAll(“myhash”);
jedis.hdel(“myhash”, “qq”);
jedis.hkeys(“myhash”);
jedis.hvals(“myhash”);

3 JedisPool
Jedis对象并不是线程安全的,在多线程下使用同一个Jedis对象会出现并发问题。为了避免每次使用Jedis对象时都需要重新构建,Jedis提供了JedisPool。JedisPool是基于Commons Pool 2实现的一个线程安全的连接池。如果使用jedis连接池,需要commons-pool2的jar包
public class JedisUtil {

//jedis连接池
private static JedisPool jedisPool = null;

static{
//连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
//最多与多少个jedis对象
config.setMaxTotal(50);
//最多有多少空闲的jedis对象
config.setMaxIdle(20);
//最大等待时间
config.setMaxWaitMillis(5000);
//检查连接的有效性
config.setTestOnBorrow(true);

  //第二个参数:redis服务器的ip
  //第三个参数:端口
  //第四个参数:连接服务器的超时时间
  //第五个参数:密码
  jedisPool = new JedisPool(config, "127.0.0.1", 6379, 1000, "redis");

}

//通过连接池获取jedis对象
public static Jedis getJedis(){
Jedis jedis = jedisPool.getResource();
return jedis;
}

//jedis对象放回连接池
public static void closeJedis(Jedis jedis){
//jedisPool.returnResource(jeids);//教新的版本中已经废弃
jedis.close();
}

}

JedisPool属性说明:

	<property name="maxTotal" value="30" />
	<!-- 最大空闲连接数 -->
	<property name="maxIdle" value="10" />
	<!-- 每次释放连接的最大数目 -->
	<property name="numTestsPerEvictionRun" value="1024" />
	<!-- 释放连接的扫描间隔(毫秒) -->
	<property name="timeBetweenEvictionRunsMillis" value="30000" />
	<!-- 连接最小空闲时间 -->
	<property name="minEvictableIdleTimeMillis" value="1800000" />
	<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
	<property name="softMinEvictableIdleTimeMillis" value="10000" />
	<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
	<property name="maxWaitMillis" value="1500" />
	<!-- 在获取连接的时候检查有效性, 默认false -->
	<property name="testOnBorrow" value="true" />
	<!-- 在空闲时检查有效性, 默认false -->
	<property name="testWhileIdle" value="true" />
	<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
	<property name="blockWhenExhausted" value="false" />

二 与spring整合
Spring的配置文件中增加内容:

	<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxTotal" value="100"></property>
		<property name="maxIdle" value="25"></property>
		<property name="maxWaitMillis" value="15000"></property>
		<property name="testOnBorrow" value="false"></property>
		<property name="testOnReturn" value="false"></property>
	</bean>
	<!-- jedis 连接池  连接本地redis服务 构造器注入-->
	<bean id="pool" class="redis.clients.jedis.JedisPool">
		<constructor-arg index="0"  ref="poolConfig"/> 
		<constructor-arg index="1" value="${redis_ip}"/> 
		<constructor-arg index="2" value="${redis_port}"/>
		<constructor-arg index="3" value="${redis_timeout}"/> 
		<constructor-arg index="4" value="${redis_auth}"/> 
	</bean>

标签:myhash,JedisPool,jedis,使用,Jedis,config,连接池,客户端
来源: https://blog.csdn.net/zyyforever/article/details/101032384

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有