Redis安装配置与使用

安装单机版

导入压缩包后
解压:   tar -zxvf redis-3.0.0.tar.gz
删除包: rm -rf redis-3.0.0.tar.gz
安装编译环境  gcc-c++
编译    [root@localhost redis-3.0.0]# make
安装到指定位置  [root@localhost redis-3.0.0]# make install PREFIX=/usr/local/src/myapp/redis
复制一份做集群使用   [root@localhost myapp]# cp -r redis redis_backup
复制一份配置文件  [root@localhost bin]# cp ../../redis-3.0.0/redis.conf ./
修改配置文件   vi redis.conf
将daemonize no改为daemonize yes使redis可以后端启动
启动服务端  [root@localhost bin]# ./redis-server redis.conf
启动客户端  [root@localhost bin]# ./redis-cli

搭建redis集群

至少需要留个虚拟机来搭建,过于麻烦,我们使用一个虚拟机搭建伪集群

模拟使用6个端口(后面的为备份服务)

7001----7004

7002----7005

7003----7006

创建文件夹存放所有redis  [root@localhost myapp]# mkdir redis-cluster
复制备份的新redis    [root@localhost myapp]# cp -r redis_backup redis-cluster/
重命名    [root@localhost redis-cluster]# mv redis_backup redis01
拷贝配置文件  [root@localhost redis-cluster]# cp ../redis-3.0.0/redis.conf ./redis01/bin/
修改配置文件  [root@localhost redis01]# vi ./bin/redis.conf 
             daemonize no改为daemonize yes
             port 6379改为port 7001
             把REDIS CLUSTER下的cluster-enabled yes注释消除
复制redis    [root@localhost redis-cluster]# cp -r redis01/ redis02
             [root@localhost redis-cluster]# cp -r redis01/ redis03
             [root@localhost redis-cluster]# cp -r redis01/ redis04
            [root@localhost redis-cluster]# cp -r redis01/ redis05
            [root@localhost redis-cluster]# cp -r redis01/ redis06
分别修改每个redis的配置文件(只修改端口号)
创建批启动文件 [root@localhost redis-cluster]# touch redis-start.sh
修改          [root@localhost redis-cluster]# vi redis-start.sh
            内容cd redis01/bin
                ./redis-server redis.conf
                cd ../../
                cd redis02/bin
                ./redis-server redis.conf
                cd ../../
                cd redis03/bin
                ./redis-server redis.conf
                cd ../../
                cd redis04/bin
                ./redis-server redis.conf
                cd ../../
                cd redis05/bin
                ./redis-server redis.conf
                cd ../../
                cd redis06/bin
                ./redis-server redis.conf
                cd ../../
创建批结束文件 [root@localhost redis-cluster]# touch redis-shutdown.sh
修改   [root@localhost redis-cluster]# vi redis-shutdown.sh 
内容        redis01/bin/redis-cli -p 7001 shutdown
            redis01/bin/redis-cli -p 7002 shutdown
            redis01/bin/redis-cli -p 7003 shutdown
            redis01/bin/redis-cli -p 7004 shutdown
            redis01/bin/redis-cli -p 7005 shutdown
            redis01/bin/redis-cli -p 7006 shutdown
为两个批文件添加执行权限  
    [root@localhost redis-cluster]# chmod u+x redis-start.sh
    [root@localhost redis-cluster]# chmod u+x redis-shutdown.sh


安装ruby运行环境  yum install ruby
                yum install rubygems
将 redis-3.0.0.gem.tar.gz 上传到根目录
安装插件    [root@localhost ~]# gem install redis-3.0.0.gem 
拷贝redis-3.0.0/src下的ruby脚本到redis-cluster下
        [root@localhost ~]# cp /usr/local/src/myapp/redis-3.0.0/src/redis-trib.rb /usr/local/src/myapp/redis-cluster/
启动 [root@localhost redis-cluster]# ./redis-start.sh 
ruby搭建  [root@localhost redis-cluster]# ./redis-trib.rb create --replicas 1 192.168.11.102:7001 192.168.11.102:7002 192.168.11.102:7003 192.168.11.102:7004 192.168.11.102:7005 192.168.11.102:7006
创建完成
进入
[root@localhost bin]# ./redis-cli -p 7001 -c

spring中引用

xml配置


	
		
		
	

	
		
		
	

	
	
		
			
				
					
					
				
				
					
					
				
				
					
					
				
				
					
					
				
				
					
					
				
				
					
					
				
			
		
	
	
		
	

在需要使用的service中通过autowired注入

    //redis集群版本
    @Autowired
    private JedisClientCluster jedisClientCluster;
    //redis单机版本
    @Autowired
    private JedisClientPool jedisClientPool;

 

内容缓存与缓存同步

//范例1.利用缓存机制的业务
public List selectContentsByCid(Long categoryId) {
		String contentString = jedisClientCluster.hget("CONTENT", categoryId+"");
		if(StringUtils.isNotBlank(contentString)){
			System.out.println("从缓存中查询");
			//不为空,String 转 对象
			return JsonUtils.jsonToList(contentString, TbContent.class);
		}
		List contents = contentMapper.selectByCid(categoryId);
		//存入缓存
		jedisClientCluster.hset("CONTENT", categoryId+"",JsonUtils.objectToJson(contents));
		System.out.println("从数据库中查询");
		return contents;
	}
//范例2.缓存同步
public BuyResult addContent(TbContent content) {
		contentMapper.insert(content);
		//缓存同步(做 新增,删除,修改 业务时应删除对应的缓存)
		jedisClientCluster.hdel("CONTENT", content.getCategoryId()+"");
		return BuyResult.ok();
	}

在使用RedisDesktopManager工具连接Redis时,如果连接不成功的话,可能是6379端口未开启,如下时CentOS6的解决办法

 /sbin/iptables -I INPUT -p tcp --dport  6379 -j ACCEPT          写入修改

 /etc/init.d/iptables save                                                                保存修改

  service iptables restart                                                                重启防火墙,修改生效

你可能感兴趣的:(Java学习,工具)