Redis单机/集群搭建(含测试代码) 完整步骤

本文介绍如何搭建 Redis 4.0.6 的单机及集群环境,包括编译安装、配置修改、启动服务等步骤,并提供 Jedis 连接示例及常见异常处理方法。

Redies4.0.6搭建(单版)

需要c/c++编译能力

sudo yum install gcc-c++

解压redies安装包

sudo tar –xzvf redies4.0.6.tar.gz

进入 redies4.0.6

cd redies4.0.6

安装redies到指定路径

sudo make install PREFIX=/usr/local/redies

然后进入到redies

cd /usr/local/redies

只有一个bin目录

 

将redies4.0.6中的redies.conf拷贝到/usr/local/redies/bin下

sudo cp –rredies.conf  /usr/local/redies/bin

然后修改配置文件redies.conf

vi redies.conf

修改daemonize yes(原来为no)

 

然后可以后台运行redies服务

./redis-serverredis.conf

4.0.6版本会出现如下提示

 

然后可以运行客户端

./redis-cli

查看进程

ps aux|grep redis

 

 

Jedis连接Redis

当出现异常:Connection refused: connect

说明只允许本地127.0.0.1访问redies,所以需要修改redies.conf

#bind 127.0.0.1

然后又出现异常:DENIED Redis is running inprotected mode because protected mode is enabled…

说明需要使用密码访问,先客户端连接上然后配置密码或者修改配置文件protected-mode no

configset requirepass 密码

 

publicclass JdiesTest {

   @Test

   publicvoid add() {

     Jedis jedis = new Jedis("192.168.254.136", 6379);

//在连接的时候需要添加密码认证

     String auth = jedis.auth("123456");

     String name = jedis.get("name");

     System.out.println("name"+name);

     jedis.close();

   }

 

}

 

Redis集群搭建

创建安装目录

mkdirredis-cluster

复制Redis中的bin文件(创建六个连接点,备份三个,必须是奇数个才能达到投票机制)

cp -r redies/bin./redis-cluster/redis01

cp -r redies/bin./redis-cluster/redis02

cp -r redies/bin./redis-cluster/redis03

cp -r redies/bin./redis-cluster/redis04

cp -r redies/bin./redis-cluster/redis05

cp -r redies/bin./redis-cluster/redis06

 

如果bin目录下有dump.rdb(快照),删除此文件

rm –rf dump.rdb

编辑每个cluster的redis.conf配置文件修改端口和集群配置

port 10005

cluster-enable yes

安装ruby脚本环境

yum install ruby

安装依赖环境

gem install redis(这是下载最新版,可能会出现ruby版本过低,所以建议到官网下载低版本,此处使用了3.3.1版gem install redis3.3.1)
然后找到redis-trib.rb
cd /home/nhb/redis-4.0.6/src
拷贝此文件
cp –r redis-trib.rb /usr/local/redis-cluster
运行此脚本
./redis-trib.rb create –-replicas 1(一个备份机)192.168.254.136:10001 192.168.254.136:10002 192.168.254.136:10003 192.168.254.136:10004 192.168.254.136:10005 192.168.254.136:10006
如果出现[ERR] Sorry, can't connect to node说明需要更新最新版ruby ,不想更新可以把redis.conf中bind ip号
客户端连接集群
./redis-cli –p 端口号 –c(必须要加)
使用jedis测试

@Test

   publicvoid addCluster() throws IOException {

     JedisPoolConfig poolConfig = new JedisPoolConfig();

     // 设置最大连接数

     poolConfig.setMaxTotal(50);

     // 定义集群信息

     List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();

     shards.add(new JedisShardInfo("192.168.254.136", 10001));

     shards.add(new JedisShardInfo("192.168.254.136", 10002));

     shards.add(new JedisShardInfo("192.168.254.136", 10003));

     shards.add(new JedisShardInfo("192.168.254.136", 10004));

     shards.add(new JedisShardInfo("192.168.254.136", 10005));

     shards.add(new JedisShardInfo("192.168.254.136", 10006));

     // 定义集群连接接

     ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig, shards);

     ShardedJedis shardedJedis = null;

     try {

        // 从连接池中获取到jedis分片对象

        shardedJedis = shardedJedisPool.getResource();

        String value = shardedJedis.get("name");

        System.out.println(value);

     } catch (Exception e) {

        e.printStackTrace();

     } finally {

        if (null != shardedJedis) {

           // 关闭,检测连接是否有效,有效则放回到连接池中,无效则重置状态

           shardedJedis.close();

        }

     }

     // 关闭连接池,正常使用的时候,不用关闭

     shardedJedisPool.close();

   }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值