Jedis客户端使用,如何使用jedis,jedis入门教程

Jedis客户端使用,如何使用jedis,jedis入门教程

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

一 基本使用

1导入jar文件

Maven方式

<dependency>
    <groupId>redis.clientsgroupId>
    <artifactId>jedisartifactId>
    <version>2.8.2version>
dependency>
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" />
		
		<property name="maxWaitMillis" value="1500" />
		
		<property name="testOnBorrow" value="true" />
		
		<property name="testWhileIdle" value="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>
		
		<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>

你可能感兴趣的:(Java)