redis api java_Redis(五)-- Java API

187448e04a9e07e4832e9845b9caeb3a.png

一、pox.xml

redis.clients

jedis

2.9.0

org.apache.commons

commons-pool2

2.4.2

junit

junit

4.11

test

二、Java代码,Jedis工具类package om.xbq.redis;

import java.util.List;

import java.util.Set;

import org.junit.Test;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

/**

* Jedis工具类

* @author xbq

* @created:2017-4-19

*/

public class JedisUtil {

private JedisPool pool;

private static String URL = "192.168.242.130";

private static int PORT = 6379;

private static String PASSWORD = "xbq123";

// ThreadLocal,给每个线程 都弄一份 自己的资源

private final static ThreadLocal threadPool = new ThreadLocal();

private final static ThreadLocal threadJedis = new ThreadLocal();

private final static int MAX_TOTAL = 100; // 最大分配实例

private final static int MAX_IDLE = 50; // 最大空闲数

private final static int MAX_WAIT_MILLIS = -1; // 最大等待数

/**

* 获取 jedis池

* @return

*/

public JedisPool getPool(){

JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

// 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取,如果赋值为-1,则表示不限制;

// 如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)

jedisPoolConfig.setMaxTotal(MAX_TOTAL);

// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例

jedisPoolConfig.setMaxIdle(MAX_IDLE);

// 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException

jedisPoolConfig.setMaxWaitMillis(MAX_WAIT_MILLIS);

final int timeout = 60 * 1000;

pool = new JedisPool(jedisPoolConfig, URL, PORT, timeout);

return pool;

}

/**

* 在jedis池中 获取 jedis

* @return

*/

private Jedis common(){

// 从 threadPool中取出 jedis连接池

pool = threadPool.get();

// 为空,则重新产生 jedis连接池

if(pool == null){

pool = this.getPool();

// 将jedis连接池维护到threadPool中

threadPool.set(pool);

}

// 在threadJedis中获取jedis实例

Jedis jedis = threadJedis.get();

// 为空,则在jedis连接池中取出一个

if(jedis == null){

jedis = pool.getResource();

// 验证密码

jedis.auth(PASSWORD);

// 将jedis实例维护到threadJedis中

threadJedis.set(jedis);

}

return jedis;

}

/**

* 释放资源

*/

public void closeAll(){

Jedis jedis = threadJedis.get();

if(jedis != null){

threadJedis.set(null);

JedisPool pool = threadPool.get();

if(pool != null){

// 释放连接,归还给连接池

pool.returnResource(jedis);

}

}

}

/**

* 判断key是否存在

* @param key

* @return

*/

public boolean existsKey(String key){

Jedis jedis = this.common();

return jedis.exists(key);

}

/**

* 删除

* @param key

* @return

*/

public Long delValue(String key){

Jedis jedis = this.common();

return jedis.del(key);

}

// ----------------------------对String类型的操作-----------------------------------------

/**

* 增加 修改

* @param key

* @param value

*/

public String setValue(String key, String value) {

Jedis jedis = this.common();

return jedis.set(key, value);

}

/**

* 查询

* @param key

* @return

*/

public String getValue(String key){

Jedis jedis = this.common();

return jedis.get(key);

}

/**

* 追加数据

* @param key

* @param value

*/

public void appendValue(String key, String value){

Jedis jedis = this.common();

jedis.append(key, value);

}

/**

* 测试 String

*/

@Test

public void testString(){

if(this.existsKey("name")){

System.out.println("这一个key存在了!");

this.appendValue("name", "xbq6666");

String name = this.getValue("name");

System.out.println("name===" + name);

long flag = this.delValue("name");

System.out.println(flag);

}else {

this.setValue("name", "javaCoder");

String name = this.getValue("name");

System.out.println("name===" + name);

}

}

// ----------------------------对List类型的操作------------------------------------------

/**

* 保存到链表

* @param key

* @param keys

* @return

*/

public long lpush(String key, String ...keys){

Jedis jedis = this.common();

return jedis.lpush(key, keys);

}

/**

* 取出链表中的全部元素

* @param key

* @return

*/

public List lrange(String key) {

Jedis jedis = this.common();

return jedis.lrange(key, 0, -1);

}

/**

* 查询出链表中的元素个数

* @param key

* @return

*/

public long llen(String key){

Jedis jedis = this.common();

return jedis.llen(key);

}

/**

* 取出链表中的头部元素

* @param key

* @return

*/

public String lpop(String key){

Jedis jedis = this.common();

return jedis.lpop(key);

}

// ----------------------------对Hash类型的操作------------------------------------------

/**

* 添加

* @param key

* @param field

* @param value

* @return

*/

public long hset(String key, String field, String value) {

Jedis jedis = this.common();

return jedis.hset(key, field, value);

}

/**

* 查询

* @param key

* @param field

* @return

*/

public String hget(String key, String field){

Jedis jedis = this.common();

return jedis.hget(key, field);

}

/**

* 判断 key 中的field 是否存在

* @param key

* @param field

* @return

*/

public boolean hexists(String key, String field){

Jedis jedis = this.common();

return jedis.hexists(key, field);

}

/**

* 删除

* @param key

* @param fields

* @return

*/

public long hdel(String key, String ...fields){

Jedis jedis = this.common();

return jedis.hdel(key, fields);

}

// ----------------------------对Set类型的操作--------------------------------------------

/**

* 添加元素

* @param key

* @param members

* @return

*/

public long sadd(String key, String ...members){

Jedis jedis = this.common();

return jedis.sadd(key, members);

}

/**

* 查询出set中的所有元素

* @param key

* @return

*/

public Set sMember(String key){

Jedis jedis = this.common();

return jedis.smembers(key);

}

/**

* 查询出 set中元素的个数

* @param key

* @return

*/

public long scard(String key){

Jedis jedis = this.common();

return jedis.scard(key);

}

// ----------------------------对ZSet类型的操作--------------------------------------------

/**

* 在zset中添加元素

* @param key

* @param score

* @param member

* @return

*/

public long zadd(String key, double score ,String member){

Jedis jedis = this.common();

return jedis.zadd(key, score, member);

}

/**

* 查询所有元素

* @param key

* @return

*/

public Set zrange(String key){

Jedis jedis = this.common();

return jedis.zrange(key, 0, -1);

}

/**

* 查询zset中的元素个数

* @param key

* @return

*/

public long zcard(String key){

Jedis jedis = this.common();

return jedis.zcard(key);

}

/**

* 删除zset中的一个 或者多个元素

* @param key

* @param members

* @return

*/

public long zrem(String key, String ...members){

Jedis jedis = this.common();

return jedis.zrem(key, members);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值