下载rdis文件 redis-3.0.7.tar.gz

redis安装

  1. 在虚拟机创建redis文件夹 mkdir –p /usr/local/src/redis
  2. 进入文件夹 cd /usr/local/src/redis
  3. 通过Xhell传输redis到虚拟机中,或者通过CentOS tools可以直接拖拽文件到虚拟机的制定位置
  4. 解压 redis文件 tar xzf redis-3.0.7.tar.gz
  5. 解压完毕后,进入redis-3.0.7文件夹 cd redis-3.0.7
  6. 文件需进行编译 make
  7. 进行安装 make install在实际安装中,Xhell与CentOS连接无论如何都不能进行连接,后来经过排查,发现是没有开启22的端口,
    端口的开启在下文会有介绍。

**

redis服务配置

**

1.修改配置文件

配置文件:redis.conf
设置模式

vi redis.conf
daemonize yes   #默认为no

端口配置:

默认6379,一般无需修改

配置数据库数量:

Redis默认开启16个数据库,不能像mysql自定义数据库名称,只能是数值,不能修改。

配置内存大小:
会生成一个和内存大小一样的文件。

maxmemory 200mb 在真实环境必须部署,否则物理内存会被耗尽。一般配置200mb/500mb/1gb/2gb。可以分散到多台服务器,和其它业务共享服务器,以充分利用资源。同时因为分散,防止单点故障,造成大量缓存失效。
maxmemory 200mb     在364行,必须设置。

centos自建redis迁移 centos redis默认安装目录_centos自建redis迁移

redis启动

redis-server有两种方式启动,一般我习惯于在redis文件夹运行这个命令,在其他地方运行是否可以 还尚未尝试

redis-server                    #默认找redis.conf配置文件
redis-server redis6380.conf #指定配置文件,这样可以启动多个实例

redis-cli通样也有两种方式,在一个系统运行多个redis实例时,我们通常 只需制定端口号 如
redis-cli -p 6380
redi-cli命令运行后
执行ping命令,
如果出现pong,那么 说明服务已成功开启

默认连接:IP 127.0.0.1 端口 6379
redis-cli
指定IP端口:
    redis-cli –h 127.0.0.1 –p 6379
    使用ping命令测试与客户端和服务器链接是否正常
    redis-cli ping

redis在一个物理节点启动两个实例

cd /usr/local/src/redis/redis-3.0.7

复制redis的配置文件,并命名为redis6380
cp redis.conf redis6380.conf
将redis6380文件中的端口改为6380

redis端口的修改

配置防火墙,开启80端口、3306端口

CentOS 7 默认使用firewalld来管理iptables规则,由于防火墙规则变动的情况很少,动不动态变得无所谓了。但是习惯是魔鬼,跟之前不一样,总是感觉不太习惯。

systemctl disable firewalld
yum remove firewalld -y

使用下面的办法来恢复原来的习惯,同时解决iptables开机启动的问题。

yum install iptables-services -y
systemctl enable iptables

这样的话,iptables服务会开机启动,自动从/etc/sysconfig/iptables 文件导入规则。

为了让/etc/init.d/iptables save 这条命令生效,需要这么做

cp /usr/libexec/iptables/iptables.init /etc/init.d/iptables
/etc/init.d/iptables save

而chkconfig iptables 命令会自动重定向到sytemctl enable iptables

打开3306端口

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save      #修改生效
/etc/init.d/iptables status         #查看配置

参考

**

Jedis连接Redis

简单的连接,可用作测试是否连接成功

@Test
    public void test(){
        //创建Jedis对象
        Jedis jedis=new Jedis("192.168.58.128",6379);
        String r=jedis.get("a6688");
        System.out.println(r);
        jedis.close();
    }

连接失败,一般来说都应该先检查redis的端口是否已经开启。

/etc/init.d/iptables status

总共开启了两个虚拟机,其中一个虚拟机开启了两个redis实例。

@Test //池化
    public void shared(){
        //构造一个池的配置对象
        JedisPoolConfig poolConfig=new JedisPoolConfig();
        poolConfig.setMaxTotal(200);
        //存储配置的信息
        List<JedisShardInfo> listInfo=new ArrayList<JedisShardInfo>();

        JedisShardInfo info1=new JedisShardInfo("192.168.58.129", 6379);
        listInfo.add(info1);
        JedisShardInfo info2=new JedisShardInfo("192.168.58.129", 6380);
        listInfo.add(info2);
        JedisShardInfo info3=new JedisShardInfo("192.168.58.128", 6379);
        listInfo.add(info3);
        ShardedJedisPool pool=new ShardedJedisPool(poolConfig, listInfo);

        ShardedJedis jedis=pool.getResource();

        for(int i=0;i<10000;i++){
            jedis.set("a"+i,"i");
        }
//      String r=jedis.get("a");
//      System.out.println(r);
        jedis.close();

    }