日期:2014-05-16 浏览次数:20457 次
?
? ? 最近,有个Java项目需要cache一些热点数据,刚开始打算用HashMap或ConcurrentHashMap缓存数据。但经过一些比较和分析后,发现这种自身缓存数据的方式有许多不便之处,例如缓存数据的持久化,使用内存大小的控制等。出于这些考虑,我们决定放弃自身缓存数据的做法,改用成熟的cache工具。现在用得比较多的Key-value型缓存工具,有Memcached和Redis,两者各有优劣,选择哪个主要取决你的应用场景。通过使用场景的分析,我们最终选择了Redis。
?
一、Redis安装
?
? ? # wget http://redis.googlecode.com/files/redis-2.2.14.tar.gz
? ? # tar zxvf redis-2.2.14.tar.gz
? ? # mv redis-2.2.14.tar.gz /usr/local/redis
? ? # cd /usr/local/redis
? ? # make && make install
?
? ? 注:网上很多示例都说不能make install,可redis-2.2.14.tar.gz是可以的,省去了手动copy redis命令的步骤。
?
? ? 启动:
? ? # cd /usr/local/redis/src
? ? # ./redis-server ../redis.conf
?
? ? 退出:
? ? # cd /usr/local/redis/src
? ? # ./redis-cli shutdown
?
? ? 注:如果想制作自动启动脚本,可以参考《Redis安装配置》。
?
? ? 客户端:
? ? # ./redis-cli -h 192.168.2.100 -p 6379
? ? redis 192.168.2.100:6379> set foo bar
? ? OK
? ? redis 192.168.2.100:6379> get foo
? ? "bar"
?
二、Redis java client
?
? ? Redis主页上列出的java客户端有JDBC-Redis、JRedis、Jedis三种,但推荐使用Jedis作为Redis的Java客户端。
?
? ? Jedis下载地址:https://github.com/xetorthio/jedis/downloads
?
? ? Jedis的API比起JRedis来说封装得相当优雅,使用起来简单直观。?
?
Jedis jedis = new Jedis("192.168.2.100"); jedis.set("foo", "bar"); System.out.println(jedis.get("foo"));
?
? ?注:Jedis使用总结pipeline、分布式的id生成器、分布式锁watch/multi、redis分布式
?
三、Redis参考文章
? ? 1、为什么使用Redis及其产品定位
? ? 2、Redis内存使用优化与存储?
? ? 3、Redis复制与可扩展集群搭建?
?
?
?