redis的安装配置与工具类开发
来源:互联网 发布:excel可以当数据库吗 编辑:程序博客网 时间:2024/06/10 18:29
本文的内容都是围绕redis进行的,主要目的是为zookeeper+dubbo的分布式项目铺路,计划在该项目中引用redis作为缓存机制,算是解决session共享问题的一个方案。但是本文并不介绍redis集群的相关内容,只是redis的简单应用。
一.redis的安装(windows环境)
1.下载redis,官网上目前已经无法下载windows版本的redis了,官网只提供Linux版本的下载,所以我们需要到GitHub上进行下载。
http://blog.csdn.net/u010820422/article/details/72236092
2.我下载的是redis-2.4.2-win32-win64-fix.zip 这个版本,解压该文件夹,下面有64bit文件夹,将该文件夹拷贝到目标目录(就是redis想存放的路径)
接下来我们可以修改redis.conf这个文件(不修改也行),我们可以设置redis的访问密码,以及redis持久化方案。
如图,我设置的redis的访问密码为redis:
接下来我们还可以设置redis的持久化方案,redis的持久化方案有两种,第一种为rdb,一种为aof。
rdb:在指定的时间间隔内将数据存入写入磁盘,个人的理解就是每隔指定时间就会更新一个rdb文件,进行数据的备份。
aof:aof机制会在每次发生写与删操作时都进行操作的记录。aof相比于rdb更能保证数据的安全性。
关于这两种机制的介绍,大家可以上网搜一下,有很多。
这里我们设置的为rdb,如图:
图中,1表示开启rdb,2为rdb文件的存储路径。
3.启动redis,启动时我们需要使用cmd进入redis所在目录,然后执行
二.redis工具类的开发
本人想开发一个工具类,哪个项目想用哪个项目就拿走就ok的那种,上网搜了一下发现晚上没有,所以自己搞了一个,只是一个初步的工具类,大家可以完善丰富或者改改bug。。。。。。
package cn.com.demo.test;import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang.StringUtils;import org.apache.log4j.Logger;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.io.IOException;import java.util.Properties;/** * @Author : zw * @Date : 16:38 2017/5/17 * @Remark : **/public class RedisUtil { private static String HOST = "127.0.0.1"; // ip private static int PORT = 6379; // 端口 private static String AUTH=""; // 密码(原始默认是没有密码) private static int MAX_ACTIVE = 1024; // 最大连接数 private static int MAX_IDLE = 200; // 设置最大空闲数 private static int MAX_WAIT = 10000; // 最大连接时间 private static int TIMEOUT = 10000; // 超时时间 private static boolean BORROW = true; // 在borrow一个事例时是否提前进行validate操作 private static JedisPool pool = null; private static Logger logger = Logger.getLogger(RedisUtil.class); static { Properties po = new Properties(); try { po.load(RedisUtil.class .getResourceAsStream("/redis.properties")); if (StringUtils.isNotBlank(po.getProperty("redis.host"))){ HOST=po.getProperty("redis.host"); } if (StringUtils.isNotBlank(po.getProperty("redis.port"))){ PORT=Integer.parseInt(po.getProperty("redis.port")); } if (StringUtils.isNotBlank(po.getProperty("redis.password"))){ AUTH=po.getProperty("redis.password"); } if (StringUtils.isNotBlank(po.getProperty("redis.timeout"))){ TIMEOUT=Integer.parseInt(po.getProperty("redis.timeout")); } if (StringUtils.isNotBlank(po.getProperty("redis.maxactive"))){ MAX_ACTIVE=Integer.parseInt(po.getProperty("redis.maxactive")); } if (StringUtils.isNotBlank(po.getProperty("redis.maxidle"))){ MAX_IDLE=Integer.parseInt(po.getProperty("redis.maxidle")); } if (StringUtils.isNotBlank(po.getProperty("redis.maxwait"))){ MAX_WAIT=Integer.parseInt(po.getProperty("redis.maxwait")); } JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(MAX_ACTIVE); config.setMaxIdle(MAX_IDLE); config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(BORROW); if(StringUtils.isNotBlank(AUTH)){ pool = new JedisPool(config, HOST, PORT, TIMEOUT,AUTH); }else{ pool = new JedisPool(config, HOST, PORT, TIMEOUT); } } catch (IOException e) { logger.error("rediUtil init error:",e); e.printStackTrace(); } } /** * 获取连接 */ public Jedis getJedis() { try { if(pool != null) { return pool.getResource(); } else { return null; } } catch (Exception e) { logger.error("连接池连接异常:",e); e.printStackTrace(); return null; } } /** * @Description:设置失效时间 * @param @param key * @param @param seconds * @param @return * @return boolean 返回类型 */ public void disableTime(String key,int seconds) { Jedis jedis = null; try { jedis = getJedis(); jedis.expire(key, seconds); } catch (Exception e) { logger.error("设置失效失败.",e); }finally { getColse(jedis); } } /** * @param : [key] * @return : boolean * @author : zw * @Date : 2017/5/18 * 检测key是否存在 **/ public boolean existKey(String key){ Jedis jedis = null; try { jedis = getJedis(); return jedis.exists(key); } catch (Exception e) { e.printStackTrace(); logger.error(key+" existKey error:",e); return false; } finally { getColse(jedis); } } /** * @param : [key] * @return : java.lang.String * @author : zw * @Date : 2017/5/18 * 获取key对应的值 以String类型返回 **/public String getValue(String key){ Jedis jedis = null; try { jedis = getJedis(); return jedis.get(key); } catch (Exception e) { e.printStackTrace(); logger.error(key+" getValue error:",e); return null; } finally { getColse(jedis); }} /** * @param : [key, obj] * @return : boolean * @author : zw * @Date : 2017/5/18 * 以json形式存储object **/ public boolean addObject(String key,Object obj) { Jedis jedis = null; String value = JSONObject.toJSONString(obj); try { jedis = getJedis(); String code = jedis.set(key, value); if(code.equals("ok")) { return true; } } catch (Exception e) { logger.error(key+" addObject error:",e); return false; }finally { getColse(jedis); } return false; } /** * @param : [key, value] * @return : boolean * @author : zw * @Date : 2017/5/18 * 存储String **/ public boolean addString(String key,String value) { Jedis jedis = null; try { jedis = getJedis(); String code = jedis.set(key, value); if(code.equals("ok")) { return true; } } catch (Exception e) { logger.error(key+"-"+value+" addString error:",e); return false; }finally { getColse(jedis); } return false; } /** * @param : [key] * @return : boolean * @author : zw * @Date : 2017/5/18 * 删除key **/ public boolean delKey(String key) { Jedis jedis = null; try { jedis = getJedis(); Long code = jedis.del(key); if(code > 1) { return true; } } catch (Exception e) { logger.error(key+" delKey error:",e); return false; }finally { getColse(jedis); } return false; } /** * @Description: 关闭连接 * @param @param jedis * @return void 返回类型 */ public void getColse(Jedis jedis) { if(jedis != null) { jedis.close(); } }}
还需要一个配置文件,文件路径放到resources目录下即可。
redis.host=127.0.0.1redis.port=6379redis.password=redisredis.timeout=10000redis.maxactive=1024redis.maxidle=200redis.maxwait=10000
- redis的安装配置与工具类开发
- redis的安装与配置
- redis的安装与配置
- redis的安装与配置
- redis的安装与配置
- Redis的安装与配置
- Redis Redis的安装与配置
- Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案
- Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案
- Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案
- Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案
- android开发工具eclipse的安装与配置
- 开发工具Java JDK的安装与配置
- 开发工具Eclipse IDE的安装与配置
- linux Java开发工具安装与配置
- Redis安装与配置
- redis安装与配置
- redis 安装与配置
- 数据库性能优化之SQL语句优化
- java之阻塞IO(BIO)
- android6.0程序在运行时申请权限
- 如何在linux下安装mysql数据库并配置
- 修改表结构alter table
- redis的安装配置与工具类开发
- kaa系统安装------在一个单一的Linux节点或集群环境中安装和配置kaa平台。
- js交互
- Java 集合框架
- [Java]通过Poi包读取Excel表格
- 深入理解图优化与g2o:g2o篇
- Tensorflow Code Snippets
- 分数拆分
- maven进阶:一个多模块项目