`

redis切片链接池

阅读更多

改动redis服务的ip:port,可以直接对redis缓存读写。

//redis切片链接池
public class RedisShardPoolUtil {
public static ShardedJedisPool pool;
static {
try {
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add(new JedisShardInfo("192.168.191.128", 6379));
//shards.add(new JedisShardInfo("127.0.0.2", 6379));
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(300);
config.setMaxIdle(600);
config.setMaxWaitMillis(3000);
pool = new ShardedJedisPool(config, shards);
}catch(Exception e) {
e.printStackTrace();
}
}

public static long setnax(String key, String value) {
ShardedJedis client = null;
try {
client = pool.getResource();
return client.setnx(key, value); //成功返回1
}catch(Exception e) {
e.printStackTrace();
}finally {
client.close();
}
return 0;
}

//对象存储为json串
public static long setnx(String key, Object value) {
ShardedJedis jedis = null;
try {
String json = JSON.toJSONString(value);
jedis = pool.getResource();
return jedis.setnx(key, json);
}catch(Exception e) {
e.printStackTrace();
}finally {
jedis.close();
}
return 0;
}

public static boolean del(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
jedis.del(key);
return true;
}catch(Exception e) {
e.printStackTrace();
return false;
}finally {
jedis.close();
}
}

public static Object get(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.get(key);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

public static <T> T get(String key,Class<T> clazz) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
String value= jedis.get(key);
return JSON.parseObject(value, clazz);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

public static boolean checkExists(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.exists(key);
}catch(Exception e) {
e.printStackTrace();
return false;
}finally {
jedis.close();
}
}

//往指定的key追加内容
public static boolean appendStr(String key, String value) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
jedis.append(key, value);
return true;
}catch(Exception e) {
e.printStackTrace();
return false;
}finally {
jedis.close();
}
}

public static long hset(String key, String field,String value) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.hset(key, field, value);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}

public static Object hget(String key, String field) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.hget(key, field);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

public static Object hmset(String key, Map<String, String> map) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.hmset(key, map); //成功返回OK
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

public static List<String> hmget(String key, String...fields) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.hmget(key, fields);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

public static Map<String,String> getAll(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.hgetAll(key);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

//指定自增,负数自减
public static long hincrby(String key, String field,long value) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.hincrBy(key, field, value);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}

public static boolean hdel(String key, String...fields) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
jedis.hdel(key, fields);
return true;
}catch(Exception e) {
e.printStackTrace();
return false;
}finally {
jedis.close();
}
}

public static long lpush(String key, String...values) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.lpush(key, values);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}

public static long rpush(String key, String...values) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.rpush(key, values);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}

public static List<String> lrange(String key, long start, long end) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.lrange(key, start, end);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}
//从头部删除元素,并返回删除元素
public static String lpop(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.lpop(key);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

public static String lindex(String key, int index) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.lindex(key, index);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

public static long llen(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.llen(key);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}
//集合
public static long sadd(String key, String...values) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.sadd(key, values);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}

//集合个数
public static long slen(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.scard(key);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}

public static Set<String> sall(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.smembers(key);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

//有序集合添加一个或多个
public static long saddorder(String key, Map<String,Double> value) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.zadd(key, value);
}catch(Exception e) {
e.printStackTrace();
return 0;
}finally {
jedis.close();
}
}

//排序
public static List<String> sort(String key, SortingParams params) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
return jedis.sort(key, params);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}

//排序:从大到小
public static List<String> sort(String key) {
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
SortingParams par = new SortingParams();
par.desc();
return jedis.sort(key, par);
}catch(Exception e) {
e.printStackTrace();
return null;
}finally {
jedis.close();
}
}
}
0
0
分享到:
评论

相关推荐

    Spring mvc整合redis实例(redis连接池)

    本文将详细介绍如何在Spring MVC中整合Redis,并利用连接池来优化性能。 首先,我们需要引入Redis的相关依赖。在Maven项目中,可以在pom.xml文件中添加`spring-data-redis`和`jedis`库,这两个库分别提供了Spring对...

    一个简单的支持多个db的redis连接池

    一个简单的支持多个db的redis连接池一个简单的支持多个db的redis连接池一个简单的支持多个db的redis连接池一个简单的支持多个db的redis连接池一个简单的支持多个db的redis连接池一个简单的支持多个db的redis连接池一...

    redis连接池

    Redis连接池是数据库连接管理的一种策略,主要用于优化数据库操作,特别是在高并发环境下,它可以有效地减少创建和销毁连接的开销,提高系统性能。Ecmall是一个开源的电子商务平台,其在处理大量用户请求时,利用...

    Redis链接工具的安装Redis链接工具的安装

    Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接工具的安装Redis链接...

    redis哨兵链接池java实现

    采用的哨兵集群监控一主两从

    Redis链接工具(RedisDesktopManager)

    Redis Desktop Manager是一款强大的开源图形化界面工具,专为管理和操作Redis键值存储系统而设计。它提供了直观的用户界面,使得数据库的管理变得更加便捷,尤其适合开发者和DBA在日常工作中进行数据查看、编辑和...

    Redis分片池 代码

    在处理大量数据时,单个Redis实例可能无法满足需求,这时就需要引入分片池(Sharding Pool)来扩展存储能力。分片池是将数据分散到多个独立Redis实例的一种策略,以实现水平扩展和负载均衡。 在Redis分片池的设计中...

    Win32 Redis动态链接库(.Dll)

    标题中的"Win32 Redis动态链接库(.Dll)"是指在Windows 32位平台上开发的Redis客户端库,它被设计成一个动态链接库(DLL),允许开发者在他们的C语言程序中直接调用Redis的相关功能。DLL是一种可执行代码的共享库,它...

    Redis 、Redis 连接池、JedisPool

    1.全网最强最好用redis 封装连接池,redis 配置详解 2.jar 内置最全 最安全的两种redis 连接池 创建方式(synchronized and look), 3.通过了自己公司生产环境的检测 4.使用方法:只需要将jar 放入项目 lib 下面 ...

    redis工具类以及redis 连接池配置

    创建jedis池配置实例,redis各种crud方法,包括使用主从同步,读写分离。工具类中包括存放hash表键值对,键值对以map的方式储存,删除键值对,永久存放键值对,设置过期时间,需要的直接去gitHab上看...

    Redis连接池的介绍和原理.go

    Redis连接池介绍和原理

    redis连接池jar jedis+common

    在Java应用中,为了提高性能和资源利用率,通常会使用连接池管理Jedis实例,这就是“redis连接池jar jedis+common”所指的内容。 一、Redis简介 Redis是一个开源的、基于内存的数据结构存储系统,可以作为数据库、...

    redis远程链接客户端

    redis远程链接客户端,非常好用

    redis缓存链接工具

    redis缓存链接工具

    Flask+Redis维护Cookies池.key

    Flask+Redis维护Cookies池.key

    最新连接redis数据库连接池commons-pool-2.5.0

    需要使用Redis连接池的话,还需commons-pool包,提供了强大的功能,包含最新的jar包

    基于Flask和Redis的代理池项目.zip

    基于Flask和Redis的代理池项目

    Flask+Redis维护Cookies池 代码.txt

    Flask+Redis维护Cookies池 代码.txt

    Redis 连接池(升级)

    内置两种模式的超强安全连接(JedisUtil_Synchronized 和 JedisUtil_ReentrantLock ),经过公司生产环境的检验,采用RedisPool.jar + redis.properties 组合,用户可快速、安全、自定义的创建连接池; 方法: 1....

    redis客户端连接工具 RedisDesktopManager

    Redis是世界上最受欢迎的内存数据存储系统之一,常用于构建高性能、低延迟的数据缓存和数据库。RedisDesktopManager是一款跨平台的图形用户界面(GUI)工具,使得开发者和管理员能够便捷地管理和操作Redis服务器,...

Global site tag (gtag.js) - Google Analytics