一、Codis简介

Codis是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务.

二、特性

  1. 自动平衡
  2. 使用非常简单
  3. 图形化的面板和管理工具
  4. 支持绝大多数 Redis 命令,完全兼容twemproxy
  5. 支持 Redis 原生客户端
  6. 安全而且透明的数据移植,可根据需要轻松添加和删除节点
  7. 提供命令行接口
  8. RESTful APIs

三、安装步骤

1.搭建GO环境

tar zxf go1.8.linux-amd64.tar.gz -C  /usr/local/
vim ~/.bash_profile    ##设置环境变量
/usr/local/go/bin/
source ~/.bash_profile

2.安装Codis

Codis 源代码需要下载到刚才搭好的GO环境的目录下

mkdir -p  /usr/local/go/src/github.com/CodisLabs    ##创建目录
cd /usr/local/go/src/github.com/CodisLabs
mv /root/codis-release3.2.zip .
unzip codis-release3.2.zip      ##解压
mv codis-release3.2 codis
cd codis/
make

(1) 启动codis-dashboard
使用 codis-dashboard-admin.sh 脚本启动 dashboard,并查看 dashboard 日志确认启动是否有异常。

[root@server1 codis]# ./admin/codis-dashboard-admin.sh start
[root@server1 codis]# tail -100 ./log/codis-dashboard.log.2021-01-15


(2)启动codis-proxy
使用 codis-proxy-admin.sh 脚本启动 codis-proxy,并查看 proxy 日志确认启动是否有异常。

[root@server1 codis]# ./admin/codis-proxy-admin.sh start
[root@server1 codis]# tail -100 ./log/codis-proxy.log.2021-01-15

(3)启动codis-server
使用 codis-server-admin.sh 脚本启动 codis-server,并查看 redis 日志确认启动是否有异常。

[root@server1 codis]# ./admin/codis-server-admin.sh start
[root@server1 codis]# tail -100 /tmp/redis_6379.log


(4)启动codis-fe
使用 codis-fe-admin.sh 脚本启动 codis-fe,并查看 fe 日志确认启动是否有异常。

[root@server1 codis]# ./admin/codis-fe-admin.sh start
[root@server1 codis]# tail -100 ./log/codis-fe.log.2021-01-15

3.通过fe添加group

通过web浏览器访问集群管理页面(fe地址:172.25.1.1:9090) 选择我们刚搭建的集群 codis-demo,在 Proxy 栏可看到我们已经启动的 Proxy, 但是 Group 栏为空,因为我们启动的 codis-server 并未加入到集群 添加 NEW GROUP,NEW GROUP 行输入 1,再点击 NEW GROUP 即可 添加 Codis Server,Add Server 行输入我们刚刚启动的 codis-server 地址,添加到我们刚新建的 Group,然后再点击 Add Server 按钮即可,如下图所示:

4.通过fe初始化slot

新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做,如下图所示,点击此按钮,我们即快速完成了一个集群的搭建。

5. 集群配置

(1)这里再分别添加6380、6381两个Redis实例

cp config/redis.conf config/redis6380.conf
cp config/redis.conf config/redis6381.conf

(2)分别更新6381、6382.conf的port、pidfile和logfile

vim config/redis6380.conf
vim config/redis6381.conf

(3)更新之后,启动新增的两个Redis实例

./bin/codis-server ./config/redis6380.conf
./bin/codis-server ./config/redis6381.conf

(4)按照上面add server的方法(如下图)添加两个实例,注意,若未执行 ./bin/codis-server ./config/redis6381.conf ,添加时会报错。

(5)刚添加进来的默认状态是NO:ONE,点击小扳手即可得到下图的状态,这里就已经第一个组就配置完成了

==注意:==如果已经装了redis 的话,Codis 的端口号从6980开始,依次向下即可
修改端口

[root@server1 codis]# vim config/redis.conf    ##在配置文件中修改端口号

测试:

[root@server1 codis]# redis-cli -h 127.0.0.1 -p 6381

注意:开启集群管理之后,只有6379可读可写,其余两个只有读权限

Codis安装与部署相关推荐

  1. Codis安装部署全架构

    Codis安装部署全架构 Codis简介 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 ...

  2. Codis 3.x 部署安装

    为什么80%的码农都做不了架构师?>>>    与 codis 2.x 部署类似.codis 3.x 中,添加了哨兵机制! 按顺序执行如下命令: 1.nohup ./bin/codi ...

  3. Qt最新版5.14在Windows环境静态编译安装和部署的完整过程 VS 2019-Qt static link build Windows 32 bit/64 bit

    文章目录 为什么要静态编译(static link) 1.源码下载/source code download 2. 编译工具下载/compiler download 编译环境选择:MinGW/MSVC ...

  4. Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  5. Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  6. Ansible的安装及部署

    Ansible的安装及部署 1 实验环境 2 Ansible的安装 3 Ansible的基本信息 4 构建Ansible清单 4.1 全局清单 4.2 设定受控主机的组 4.2.1 清单查看 4.2. ...

  7. idea上传项目到码云_mall前端项目的安装与部署

    本文主要讲解mall前端项目mall-admin-web的在Windows和Linux环境下的安装及部署. Windows下的安装及部署 下载nodejs并安装 下载地址:https://nodejs ...

  8. Linux下Redis3.2的安装和部署

    redis简介: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...

  9. vSphere虚拟化之ESXi安装及部署

    vSphere虚拟化之ESXi的安装及部署(上) 一.什么是vSphere? vSphere是VNware公司在2001年基于云计算推出的一套企业级虚拟化解决方案.核心组件为ESXi.如今,经历了5个 ...

最新文章

  1. weblogic创建域后启动不了_WebLogic的Azure虚拟机主要版本发布
  2. linux系统的交换分区怎么分配?
  3. 文件签名魔塔50层android反编译破解
  4. python3 第三十四章 - 聊聊File对象
  5. 东莞市经济贸易学校计算机,2017东莞市经济贸易学校中考录取分数线公布
  6. 读取excel内容转为二维list
  7. if函数python_pythonif函数
  8. python为什么closed_为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed])...
  9. 《WinForm开发系列之控件篇》Item13 DirectoryEntry(暂无)
  10. 最长高地(51Nod-2509)
  11. linux下安装 Sublime Text 3
  12. 3D旋转(CSS3)
  13. 孙宇晨大举进驻NFT艺术的背后:区块链+艺术还能有怎样的玩法?
  14. 字符设备、块设备、网络设备详解
  15. 小程序之校园交流平台
  16. 【GCC】gcc警告选项汇总--编辑中|gcc编译选项
  17. Linux常见问题及解决方案
  18. 精讲精练k-近邻算法:knn(一)
  19. [Swift]LeetCode1104. 二叉树寻路 | Path In Zigzag Labelled Binary Tree
  20. Android实现图片放大缩小

热门文章

  1. c语言野指针和空指针,C++中的空指针和野指针
  2. java高并发(六)线程安全性
  3. 自然语言处理之循环神经网络(五)
  4. 终结 Python 原生字典?这个库要逆天改命了
  5. Python数据分析实战基础 | 初识Pandas
  6. 仓鼠体重年龄对照表_一文带你走进仓鼠世界:仓鼠种类之叙利亚仓鼠(上)
  7. 计算机网络技术发源于什么,计算机网络基础试题和答案
  8. ymodem协议c语言,STC单片机ISP-Demo-使用Y-Modem协议源码与库函数分享
  9. 参数注入:使用java配置参数的方法,springboot的方法
  10. 深度学总结:CNN Decoder, Upsampling的处理