Redis缓存 ava-Jedis操作Redis,基本操作以及 实现对象保存
源代码下载: http://download.csdn.net/detail/jiangtao_st/7623113
1、Maven配置
- <dependency>
- <groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>2.5.0</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.1.41</version>
- </dependency></span>
2、Properties 配置文件
redis.pool.maxActive=100
redis.pool.maxIdle=20
redis.pool.maxWait=3000
redis.ip=localhost
redis.port=6379
3、代码具体实现的Client
- /**
- *
- * <p>
- * Redis客户端访问
- * </p>
- *
- * @author 卓轩
- * @创建时间:2014年7月11日
- * @version: V1.0
- */
- public class RedisClient {
- public static JedisPool jedisPool; // 池化管理jedis链接池
- static {
- //读取相关的配置
- ResourceBundle resourceBundle = ResourceBundle.getBundle("redis");
- int maxActive = Integer.parseInt(resourceBundle.getString("redis.pool.maxActive"));
- int maxIdle = Integer.parseInt(resourceBundle.getString("redis.pool.maxIdle"));
- int maxWait = Integer.parseInt(resourceBundle.getString("redis.pool.maxWait"));
- String ip = resourceBundle.getString("redis.ip");
- int port = Integer.parseInt(resourceBundle.getString("redis.port"));
- JedisPoolConfig config = new JedisPoolConfig();
- //设置最大连接数
- config.setMaxTotal(maxActive);
- //设置最大空闲数
- config.setMaxIdle(maxIdle);
- //设置超时时间
- config.setMaxWaitMillis(maxWait);
- //初始化连接池
- jedisPool = new JedisPool(config, ip, port);
- }
- /**
- * 向缓存中设置字符串内容
- * @param key key
- * @param value value
- * @return
- * @throws Exception
- */
- public static boolean set(String key,String value) throws Exception{
- Jedis jedis = null;
- try {
- jedis = jedisPool.getResource();
- jedis.set(key, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- jedisPool.returnResource(jedis);
- }
- }
- /**
- * 向缓存中设置对象
- * @param key
- * @param value
- * @return
- */
- public static boolean set(String key,Object value){
- Jedis jedis = null;
- try {
- String objectJson = JSON.toJSONString(value);
- jedis = jedisPool.getResource();
- jedis.set(key, objectJson);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- jedisPool.returnResource(jedis);
- }
- }
- /**
- * 删除缓存中得对象,根据key
- * @param key
- * @return
- */
- public static boolean del(String key){
- Jedis jedis = null;
- try {
- jedis = jedisPool.getResource();
- jedis.del(key);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- jedisPool.returnResource(jedis);
- }
- }
- /**
- * 根据key 获取内容
- * @param key
- * @return
- */
- public static Object get(String key){
- Jedis jedis = null;
- try {
- jedis = jedisPool.getResource();
- Object value = jedis.get(key);
- return value;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- jedisPool.returnResource(jedis);
- }
- }
- /**
- * 根据key 获取对象
- * @param key
- * @return
- */
- public static <T> T get(String key,Class<T> clazz){
- Jedis jedis = null;
- try {
- jedis = jedisPool.getResource();
- String value = jedis.get(key);
- return JSON.parseObject(value, clazz);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }finally{
- jedisPool.returnResource(jedis);
- }
- }
- }
4、Sharding 分片管理
- /**
- *
- * <p>
- * Sharding Redis Client 工具类
- * </p>
- *
- * @author 卓轩
- * @创建时间:2014年7月11日
- * @version: V1.0
- */
- public class ShardingRedisClient {
- private static ShardedJedisPool shardedJedisPool;
- static {
- // 读取相关的配置
- ResourceBundle resourceBundle = ResourceBundle.getBundle("redis");
- int maxActive = Integer.parseInt(resourceBundle.getString("redis.pool.maxActive"));
- int maxIdle = Integer.parseInt(resourceBundle.getString("redis.pool.maxIdle"));
- int maxWait = Integer.parseInt(resourceBundle.getString("redis.pool.maxWait"));
- String ip = resourceBundle.getString("redis.ip");
- int port = Integer.parseInt(resourceBundle.getString("redis.port"));
- //设置配置
- JedisPoolConfig config = new JedisPoolConfig();
- config.setMaxTotal(maxActive);
- config.setMaxIdle(maxIdle);
- config.setMaxWaitMillis(maxWait);
- //设置分片元素信息
- JedisShardInfo shardInfo1 = new JedisShardInfo(ip,port);
- JedisShardInfo shardInfo2 = new JedisShardInfo(ip,port);
- List<JedisShardInfo> list = new ArrayList<JedisShardInfo>();
- list.add(shardInfo1);
- list.add(shardInfo2);
- shardedJedisPool = new ShardedJedisPool(config, list);
- }
- /**
- * 向缓存中设置字符串内容
- * @param key key
- * @param value value
- * @return
- * @throws Exception
- */
- public static boolean set(String key,String value) throws Exception{
- ShardedJedis jedis = null;
- try {
- jedis = shardedJedisPool.getResource();
- jedis.set(key, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- shardedJedisPool.returnResource(jedis);
- }
- }
- /**
- * 向缓存中设置对象
- * @param key
- * @param value
- * @return
- */
- public static boolean set(String key,Object value){
- ShardedJedis jedis = null;
- try {
- String objectJson = JSON.toJSONString(value);
- jedis = shardedJedisPool.getResource();
- jedis.set(key, objectJson);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- shardedJedisPool.returnResource(jedis);
- }
- }
- /**
- * 删除缓存中得对象,根据key
- * @param key
- * @return
- */
- public static boolean del(String key){
- ShardedJedis jedis = null;
- try {
- jedis = shardedJedisPool.getResource();
- jedis.del(key);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- shardedJedisPool.returnResource(jedis);
- }
- }
- /**
- * 根据key 获取内容
- * @param key
- * @return
- */
- public static Object get(String key){
- ShardedJedis jedis = null;
- try {
- jedis = shardedJedisPool.getResource();
- Object value = jedis.get(key);
- return value;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }finally{
- shardedJedisPool.returnResource(jedis);
- }
- }
- /**
- * 根据key 获取对象
- * @param key
- * @return
- */
- public static <T> T get(String key,Class<T> clazz){
- ShardedJedis jedis = null;
- try {
- jedis = shardedJedisPool.getResource();
- String value = jedis.get(key);
- return JSON.parseObject(value, clazz);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }finally{
- shardedJedisPool.returnResource(jedis);
- }
- }
- }
5、 单元测试、保存对象、写入对象
- /**
- *
- * <p>
- * 测试独立redis 客户端
- * </p>
- *
- * @author 卓轩
- * @创建时间:2014年7月11日
- * @version: V1.0
- */
- public class SimpleClient {
- @Test
- public void userCache(){
- //向缓存中保存对象
- UserDO zhuoxuan = new UserDO();
- zhuoxuan.setUserId(113445);
- zhuoxuan.setSex(1);
- zhuoxuan.setUname("卓轩");
- zhuoxuan.setUnick("zhuoxuan");
- zhuoxuan.setEmail("zhuoxuan@mogujie.com");
- //调用方法处理
- boolean reusltCache = RedisClient.set("zhuoxuan", zhuoxuan);
- if (reusltCache) {
- System.out.println("向缓存中保存对象成功。");
- }else{
- System.out.println("向缓存中保存对象失败。");
- }
- }
- @Test
- public void getUserInfo(){
- UserDO zhuoxuan = RedisClient.get("zhuoxuan",UserDO.class);
- if(zhuoxuan != null){
- System.out.println("从缓存中获取的对象," + zhuoxuan.getUname() + "@" + zhuoxuan.getEmail());
- }
- }
- }
Redis缓存 ava-Jedis操作Redis,基本操作以及 实现对象保存的更多相关文章
- 【Redis】使用Jedis操作Redis
Jedis介绍 jedis就是集成了redis的一些命令操作,封装了redis的java客户端. Jedis使用 使用jedis需要引入jedis的jar包,下面提供了maven依赖 jedis.ja ...
- <Redis> 入门四 Jedis操作Redis
pom依赖 <dependencies> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> < ...
- Jedis操作Redis
Jedis操作Redis的常用封装方法 @Resource(name="jedispool") private JedisPool pool=null; /** * 设置缓存对象过 ...
- jedis操作redis的几种常见方式总结
Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
- Java中Jedis操作Redis与Spring的整合
Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...
- Redis入门和Java利用jedis操作redis
Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...
- Jedis操作Redis数据库
添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...
- 四、Jedis操作Redis
前言: 原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...
- JAVA中通过Jedis操作Redis连接与插入简单库
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
- 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型
python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...
随机推荐
- Nhibernate与Dapper对比,及Nhibernate增删改和9种查询语法
1,Sql语法. NH:HQL Dapper:原生Sql. 点评:原生Sql可以直接放在数据库里执行,Hql不行,且Hql增加学习负担.(Hn也可以原生Sql,但好像用的不多呀) 2,开发速度. NH ...
- 手动启动angular
关于手动启动 angular 的问题 angular核心原理解析1:angular自启动过程 angular.element(document).ready(function() { angular. ...
- 白话spring依赖注入
Spring能有效地组织J2EE应用各层的对象.Action?Service?DAO?,都可在Spring的管理下有机地协调.运行.Spring将各层的对象以松耦合的方式组织在一起,对象与对象之间没有 ...
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...
- jQuery.Validate验证库
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- 使用Spring Profile和Mybatis进行多个数据源(H2和Mysql)的切换
最近在做WebMagic的后台,遇到一个问题:后台用到了数据库,本来理想情况下是用Mysql,但是为了做到开箱即用,也整合了一个嵌入式 数据库H2.这里面就有个问题了,如何用一套代码,提供对Mysql ...
- Tasks on 2013
1.改进并补充实验 2.样本选取和文档分布调查 3. Diversity Metrics 4. PPT for Project starting 1. Chrome & webkit 2. O ...
- MATLAB将批量的图片保存为mat文件
clc; clear all; num = 10; for i = 1 : num IM = imread(sprintf('E:\\TEST\\PtzTEST2015-8-9\\image1280x ...
- POJ3666-Making the Grade(左偏树 or DP)
左偏树 炒鸡棒的论文<左偏树的特点及其应用> 虽然题目要求比论文多了一个条件,但是……只需要求非递减就可以AC……数据好弱…… 虽然还没想明白为什么,但是应该觉得应该是这样——求非递减用大 ...
- Java管道流PipedStream
管道读取流和管道写入流可以像管道一样对接上,管道读取流就可以读取管道写入流写入的数据.需要注意的是需要加入多线程技术,因为单线程,先执行read,会发生死锁,因为read方法是阻塞式的,没有数据的re ...