Redis--参考资料即总结

一,安装配置

 

  1. 新版本可以make install的; 也提供了utils目录,一键加入开机启动脚本

  2.设置了密码之后,脚本无法stop进程!!必须连上redis-cli, 输入shutdown

 

$ wget http://download.redis.io/releases/redis-2.6.16.tar.gz  
$ tar xzf redis- 2.6.16.tar.gz //这里假设解压缩到/usr/local/redis  
$ cd redis- 2.6.16
$ make  
$ make install  
$ cd utils  
$./install_server  

/etc/init.d/redis_6379 start 

 

 

二、接口命令--中文的哦。。

   http://www.redisdoc.com/en/latest/

 

三、比较完整,详细的介绍

 

Redis版本:V3.0.3 2013-8-1 ( @江南白衣版权所有,转载请保留出处)

   https://github.com/springside/springside4/wiki/Redis

 

How to take advantage of Redis just adding it to your stack

http://oldblog.antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

 

四、连接池及jedis

     附件送一个maven的代码

 

五、经验

  1. 简单的使用,无需用到pool;

  2. 如果用到pool,请一定关注下面2点:

       a.)每次从pool获取资源后,一定要try-finally 释放; 不手动释放的话,瞬间死的很惨; 

       b.) 一定要搞懂returnBrokenResource 和returnResource 的区别。

        池对象是复用的,比如先setxxx,一旦返回OK之前超时断开,下一次取到这个对象的get就会获取到"OK" "PONG" 这种奇怪的返回。

     

       而JedisConnectionException被设计成runtime异常,虽说不用强制捕获,但是不捕获怎么能处理掉brokenresource呢? 

  3. 从安全的角度来看,,安装第一件事情就是先换个端口把。嗯,15位串的密码也是必备。

	/**
	 * 关闭连接
	 * @param jedis 连接对象
	 * @param isOK  对象是否ok,正常设为true;捕获到JedisConnectionException异常的时候传入false
	 */
	public void closeConnection(Jedis jedis, boolean isOK) {
		if (null != jedis) {
			if(!isOK){
				log.error("returnBrokenResource jedis="+ new Gson().toJson(jedis));;
				jedisPool.returnBrokenResource(jedis);
			}else{
				jedisPool.returnResource(jedis);
			} 
		}
	}

 

 

try {
		connection.setex(key, 1800,xxxx)));
} catch (JedisConnectionException e) {
			//return broken here
}

 

  springside这里的封装相当给力,可以借鉴之

 https://github.com/springside/springside4/blob/master/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java

 

 4.关于序列化: 我这里用的gson; 其实用来替代mysql之后,数据模型的可升级性必将成为一个问题。

 

{ //main
		A a = new A();
		a.b = 250;
		String gs = new Gson().toJson(a);
		B b = new Gson().fromJson(gs, B.class);
		System.out.println(b);
	}

}

class A{
	Integer a;
	Integer b;
}

class B{  //可扩展新字段
	Integer a;
	Integer b;
	Integer c;
}

 

 

你可能感兴趣的:(Redis--参考资料即总结)