1. Redis
① yum install gcc-c++ (因为redis是c语言编写的)
② 从官网下载相对应的redis版本
③ 解压 redis包(tar -zxvf redis-3.0.0.tar.gz)
④ 去到解压后的redis目录中使用make命令进行编译,然后再进行安装并指定一个安装路径(make install PREFIX=/usr/local/redis)
⑤ 前端默认启动,会占用一个终端(./redis-server)
⑥ 后端启动 (1. 将redis.conf复制到安装文件夹bin目录下 cp ~/redis-3.0.0/redis.conf /usr/local/redis/bin 2.修改配置文件daemonize yes 3.启动 ./redis-server redis.conf)
⑦ 查看是否启动 查看进程(ps aux|grep redis)
⑧ 连接指定的客户端./redis-cli -h 192.168.21.128 -p 6379 (-h 连接地址 -p 端口号)
2. Redis集群
使用集群得先下载安装 rvm与ruby、gem等,然后执行redis-3.0.0.gem
(rvm教程详见rvm安装教程
Ruby安装命令 rvm install ruby 1.9.3 ,安装Ruby后gem会作为依赖自动安装)
① 安装redis集群所支持的包gem install redis.3.0.0.gem
② 将redis复制六份改名为 redis01~redis06放入redis-cluster文件夹
③ 修改redis端口号 port 6379(vim redis.conf 端口号默认为6379)
④ 开启redis集群模式(/cluster 找到# cluster-enabled yes 将前面的#注释去掉)
然后执行redis.3.0.0目录下src文件里面的redis-trib.rb
(下列命令中的1 代表每个节点有几个备份节点,可以设置成别的,但是得相应增加redis节点)
./redis-trib.rb create --replicas 1 192.168.21.128:7001 192.168.21.128:7002 192.168.21.128:7003 192.168.21.128:7004 192.168.21.128:7005 192.168.21.128:7006
./redis-cli -p 7006 -c 连接集群客户端(-p指定端口号-c可自行切换集群节点)
Cluster info 查看集群的状态
Cluster nodes 查看集群的节点
3.java代码
public User getUserById(int userId) {
ObjectMapper mapper = new ObjectMapper();//jackson工具类
//先查询缓存
//添加缓存不能影响正常业务逻辑(如果查询缓存报错,则抛出异常)
try {
//查询缓存
String json=jedisClient.hget("user_tzw", userId+"");
//查询到结果,吧json转换为实体类型
if (StringUtils.isNotEmpty(json)) {
User user=mapper.readValue(json, User.class);
return user;
}
} catch (Exception e) {
e.printStackTrace();
}
//缓存中没有命中,则需要查询数据库
User user=userMapper.selectByPrimaryKey(userId);
//把结果添加到缓存
try {
jedisClient.hset("user_tzw", userId+"", mapper.writeValueAsString(user));
} catch (Exception e) {
e.printStackTrace();
}
//返回结果
return user;
}
Spring配置文件
<!-- redis单机版 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.21.128"/>
<constructor-arg name="port" value="6379"/>
</bean>
<bean id="jedisClientPool" class="com.taotao.jedis.JedisClientPool"/>
滴水石穿!!!