|
最近,有个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复制与可扩展集群搭建 |
|
|
|
|
|
|