您的位置:首页 > 数据库 > Redis

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

2018-02-02 16:09 513 查看

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 installPREFIX=/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();
   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: