- 浏览: 144786 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (138)
- java基础 (26)
- 日常工作经验总结 (22)
- SVN学习与使用 (1)
- JBOSS学习与实践 (1)
- webService学习与实践 (4)
- redis学习与实践 (12)
- spring学习与实践 (0)
- hibernate学习与实践 (4)
- Struts2学习与实践 (0)
- mybatis学习与实践 (0)
- SpringMVC学习与实践 (0)
- jfreechart学习与使用 (0)
- javaScript学习与实践 (1)
- linux学习与实践 (4)
- Python学习与实践 (7)
- Oracle学习与实践 (21)
- Mysql学习与实践 (4)
- HTML5+CSS3学习与实践 (0)
- DIV+CSS学习与实践 (0)
- tomcat学习与实践 (1)
- mongodb学习与实践 (1)
- Git学习与实践 (2)
- hadhoop学习与实践 (0)
- shiro学习与实践 (0)
- CMS学习与实践 (0)
- Jmeter学习与实践 (0)
- java测试学习与实践 (2)
- bootstrap学习与实践 (0)
- jquery学习与实践 (0)
- Spring+hibernate+Struts2框架开发CRM项目 (0)
- JVM学习与实践 (0)
- 推荐学习网站 (1)
- 日常工作必备小技能 (4)
- Apache实践 (1)
- dubbo学习与实践 (2)
- Centos7 (6)
- 面试题目集合(收集各大网站) (4)
- 大数据学习 (1)
- 财富本 (2)
- 股票投资学习 (0)
- ZooKeeper (0)
- python切割集合里面相同的元素到一个集合里面 (1)
- 机器学习与深度学习 (1)
最新评论
-
魏叔武:
...
基于UDP协议的Socket编程
package com.ray.redis; import org.apache.log4j.Logger; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.ArrayList; import java.util.List; /** * */ public class RedisUtil { /** * 日志记录 */ protected final Logger log = Logger.getLogger(RedisUtil.class); // redis服务器IP private static String ADDR = "127.0.0.1"; // redis的端口号 private static int PORT = 6379; // 访问密码,因为开机关机,redis会自动清除所有的东西,所以没有必要设置密码 private static String AUTH = "stockea"; // 可用连接实例的最大数目,默认为8 // 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此 // 时pool的状态为exhausted(耗尽)。 private static int MAX_ACTIVE = 1024; // 控制一个pool最多有多少个状态为idle(空闲)的jedis实例,默认也是8 private static int MAX_IDLE = 200; // 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。 // 如果超过等待时间,则直接抛出JedisConnectionException private static int MAX_WAIT = 10000; private static int TIMEOUT = 10000; // 在borrow一个redis实例时,是否提前进行validate操作; // 如果为true,则得到的jedis实例均是可用的 private static boolean TEST_ON_BORROW = true; private static JedisPool jedisPool = null; /** * 初始化Redis连接池 Jedis的连接池配置需要用到 * * 所以要引入commons-pool.jar 版本必须是 2+以前 * */ static { try { JedisPoolConfig config = new JedisPoolConfig(); // 老版本是setMaxActive config.setMaxTotal(MAX_ACTIVE); config.setMaxIdle(MAX_IDLE); // 老版本是maxMaxWait config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT);// 有密码的时候传入AUTH } catch (Exception e) { e.printStackTrace(); } } /** * 获取Jedis实例 * */ public synchronized static Jedis getJedis() { try { if (jedisPool != null) { Jedis resource = jedisPool.getResource(); return resource; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } /** * 释放jedis资源 * */ @SuppressWarnings("deprecation") public static void returnResource(final Jedis jedis) { if (jedis != null) { jedisPool.returnResourceObject(jedis); } } /** * 获取List集合 * * @param key * 存入的key * @param begin * @param end * @param inseList * 插入的集合 * @return */ public static List<String> getList(String key, int begin, int end) { Jedis jedis = RedisUtil.getJedis(); List<String> list = new ArrayList<String>(); try { if (begin < 0) { throw new IllegalAccessError("遍历lrange 开始位置不能小于0"); } if (begin == end) { throw new IllegalAccessError("遍历lrange 开始位置不能等于结束位置"); } else { list = jedis.lrange(key, begin, end); } } catch (Exception e) { e.printStackTrace(); } finally { RedisUtil.returnResource(jedis); } return list; } /** * 保存List集合 * * @param key * 存入的key * @param begin * @param end * @param saveList * 插入的集合 * @return */ public static void saveList(String key, List<String> saveList) { Jedis jedis = RedisUtil.getJedis(); try { if (saveList.size() == 0) { throw new IllegalAccessError("保存的集合大小不能为0"); } else { for (int i = 0; i < saveList.size(); i++) { jedis.lpush(key, saveList.get(i)); } } } catch (Exception e) { e.printStackTrace(); } finally { RedisUtil.returnResource(jedis); } } /** * 根据key来获取对应的value * * @param key * @return */ public static String getStringValue(String key) { Jedis jedis = RedisUtil.getJedis(); String valueString = null; try { boolean falg = jedis.exists(key); if (falg == true) { valueString = jedis.get(key); } else { throw new IllegalAccessError("根据key查询时,key不存在!"); } } catch (Exception e) { e.printStackTrace(); } finally { RedisUtil.returnResource(jedis); } return valueString; } /** * 根据key来保存对应的value * * @param key * @return */ public static void saveStringValue(String key,String value) { Jedis jedis = RedisUtil.getJedis(); try { jedis.set(key, value); } catch (Exception e) { e.printStackTrace(); } finally { RedisUtil.returnResource(jedis); } } /** * 判断key是否存在 * 如果存在 * 删除 * */ /** * 根据key来获取对应的value * * @param key * @return * @return */ public static void delteKey(String key) { Jedis jedis = RedisUtil.getJedis(); try { boolean falg = jedis.exists(key); if (falg == true) { jedis.del(key); } else { throw new IllegalAccessError("根据key查询时,key不存在!"); } } catch (Exception e) { e.printStackTrace(); } finally { RedisUtil.returnResource(jedis); } } /** * 清空所有的 keys * 执行时,慎重! */ public static void deleteAllKeys(){ Jedis jedis = RedisUtil.getJedis(); try { jedis.flushAll(); } catch (Exception e) { e.printStackTrace(); } finally { RedisUtil.returnResource(jedis); } } }
需要的jar包:
发表评论
-
redis命令集合
2017-07-24 15:50 52601 exits key // ... -
Redis 分区
2017-07-02 18:03 0Redis 分区 分区是分割数据到多个Redis实例的处理过程 ... -
Redis 管道技术
2017-07-02 18:01 0Redis是一种基于客户端-服务端模型以及请求/响应协议的TC ... -
Redis服务端设置密码
2017-07-02 17:52 486通过 redis 的配置文件设置密码参数,这样客户端连接到 r ... -
Java 使用 Redis
2017-06-30 14:40 0Redis Java String(字符串) 实例 Red ... -
Redis 事务
2017-06-26 20:36 0Redis 事务可以一次执行多个命令, 并且带有以下两个重要的 ... -
Redis 发布订阅命令
2017-06-29 16:32 4501 PSUBSCRIBE pattern [patter ... -
Redis HyperLogLog 命令
2017-06-29 14:37 504Redis 在 2.8.9 版本添加了 HyperLogLog ... -
Redis 有序集合(sorted set)常用用法
2017-06-26 20:40 0Redis 有序集合和集合一样也是string类型元素的集合, ... -
Redis 集合(Set)常用用法
2017-06-29 14:10 577Redis的Set是string类型的无序集合。集合成员是唯一 ... -
Redis 列表(List)常用用法
2017-06-29 12:42 579Redis列表是简单的字符 ... -
Redis 哈希(Hash)常用用法
2017-06-28 11:50 5431 语法:Hset table filed value,HDE ... -
Redis 键相关的基本命令
2017-06-26 20:29 3251;DEL key 该命令用于在 key 存在时删除 key。 ... -
redis数据类型-String
2017-06-25 21:54 457redis的数据有:字符串(String), 哈希(Map), ... -
Centos7下安装redise
2017-04-26 15:50 449第一步:通过weget方式下载好redise # wget ... -
eclipse写java程序实现连接redis数据库教程
2016-10-22 11:30 1441redis是一个非常优秀的键值对类型的数据库,读写速度超级快, ... -
windows7下redis本地安装配置
2016-10-17 08:52 0最开始redis是不支持windows安装的,但是微软为了能够 ...
相关推荐
最后,"代码"目录下应包含实际的Java代码示例,可以参考和学习。 在实际开发中,一个良好的Redis工具类通常会封装这些基础操作,提供更友好的API,例如批量操作、连接池管理、异常处理等。工具类的设计应考虑线程...
封装Redis客户端的主要目的是为了提高代码的可读性和可维护性。通过创建一个服务层,我们可以将具体的Redis命令和操作隐藏在内部,对外只暴露简单的业务方法,这样可以避免在业务代码中直接使用低级API,从而降低...
本文将深入探讨如何在Java环境中进行Redis操作,并对这些操作进行封装,以实现更高效、可复用的代码。 首先,我们需要一个连接池来管理Redis连接,这有助于减少创建和销毁连接的开销。Jedis是Java中常用的Redis...
本文将深入探讨如何使用Java与Redis进行各种类型的操作,并基于Maven项目管理来构建我们的示例代码。 首先,为了在Java项目中使用Redis,我们需要引入Jedis库,这是一个流行的Java Redis客户端。在Maven项目的`pom....
内容:封装好的redis锁 使用场景: 1.并发情况下 2.对某个字段状态的处理 3.支付回调,重复收到回调数据 使用方法: Object result = redisLockTemplate.execute("REDIS:LOCK:" + id, 1, TimeUnit.SECONDS, new ...
如果需要在多台Redis服务器间迁移数据,可以将上述逻辑封装为一个服务,通过消息队列或定时任务触发迁移操作,确保数据一致性。 通过以上步骤,我们可以实现Java对Redis数据的导入和导出。这不仅可以帮助我们在...
通过以上封装,我们可以在项目中便捷地使用Redis进行字符串操作,而无需关心连接的建立和释放,提高了代码的可读性和可维护性。同时,`RedisPoolUtils`类中的方法可以根据实际需求继续扩展,以满足更多复杂的业务...
Redis 是一个高性能的键值对数据存储系统,常被用作...通过以上知识点,我们可以编写出高效、可靠的Java代码来利用Redis进行数据缓存。在实践中,还需要根据具体业务场景进行优化和调整,以最大化Redis的性能优势。
本文将深入探讨如何使用Java来操作Redis,包括设置和获取String、List和Map类型的数据,并且会介绍如何进行封装和单元测试。 首先,要与Redis进行交互,我们需要引入Jedis库,这是Java最常用的Redis客户端。在你的...
在本文中,我们将深入探讨如何使用Java和Redis的有序集合(Zset)来实现一个排行榜功能。Redis是一个高性能的键值存储系统,它的有序集合数据结构非常适合用来构建排行榜,因为可以方便地进行分数排序和成员操作。 ...
在实际项目中,我们通常会创建一个 RedisClient 类,封装连接和操作逻辑,提供更高级别的接口给业务代码使用。例如,为每个数据结构类型创建单独的方法,以便于管理和维护。 总的来说,Java 连接 Redis 需要安装 ...
在Java开发中,为了提高代码的可读性和复用性,通常会创建一个或多个工具类来封装Redis的操作。下面我们将详细探讨RedisUtils工具类的关键知识点。 1. **Jedis库的使用** RedisUtils通常依赖于Jedis,这是一个Java...
"java源码:使用Redis存放Session RedisManager.zip"就是一个实例,展示了如何通过Java代码实现这一功能。 首先,Redis是一个开源、高性能的键值存储系统,适合存储字符串、哈希、列表、集合等多种数据结构,特别...
本示例“java redis demo”是关于如何在Java应用程序中集成并有效使用Redis的一个实例,主要涉及Jedis连接池以及各种数据类型的操作。 首先,Jedis是一个Java客户端,用于与Redis服务器进行通信。它提供了丰富的API...
在IT行业中,Redis是一个高性能的键值...在实际项目中,通常会将Redis操作封装到一个单独的服务或工具类中,以提供更友好的API给业务代码使用。了解并熟练掌握这些知识点,将有助于提升Java应用的数据处理能力和性能。
这个封装通过详细注释,使得开发者更容易理解和使用这些操作,降低了与Redis交互的复杂性,提高了代码的可读性和维护性。在实际应用中,可以根据需求选择相应的方法,灵活地处理不同场景的数据存储和检索问题。同时...
总之,`JAVA整合JEDIS操作访问Redis的工具类`通过Jedis库实现了与Redis服务器的交互,并通过`CacheUtils`工具类进一步封装了常用操作,降低了使用Redis的门槛。这使得开发者能够更专注于业务逻辑,而不是底层的连接...
RuoYi是一个基于Java技术开发的后台管理系统,基于技术组合(SpringBoot+Vue),内置模块有:部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式...
集成完成后,就可以在Java代码中创建Jedis实例,连接到Redis服务器了。基本步骤如下: 1. 创建Jedis实例:需要提供Redis服务器的IP地址和端口号。 ```java Jedis jedis = new Jedis("localhost", 6379); ``` 2. ...