中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

codis有什么用

發布時間:2021-11-22 14:43:41 來源:億速云 閱讀:122 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關codis有什么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1.  Codis簡介

Codis 是一個分布式 Redis 解決方案, 對于上層的應用來說, 連接到Codis Proxy 和連接原生的 Redis Server 沒有明顯的區別 (不支持的命令列表), 上層應用可以像使用單機的 Redis 一樣使用, Codis 底層會處理請求的轉發, 不停機的數據遷移等工作, 所有后邊的一切事情, 對于前面的客戶端來說是透明的, 可以簡單的認為后邊連接的是一個內存無限大的 Redis 服務.

Codis 由四部分組成:

  • Codis Proxy     (codis-proxy)

  • Codis Manager     (codis-config)

  • Codis Redis     (codis-server)

  • ZooKeeper

codis-proxy 是客戶端連接的 Redis 代理服務, codis-proxy 本身實現了 Redis 協議, 表現得和一個原生的Redis 沒什么區別 (就像 Twemproxy), 對于一個業務來說, 可以部署多個 codis-proxy, codis-proxy 本身是無狀態的.

codis-config 是Codis 的管理工具, 支持包括, 添加/刪除 Redis 節點, 添加/刪除 Proxy 節點, 發起數據遷移等操作. codis-config 本身還自帶了一個 http server, 會啟動一個 dashboard, 用戶可以直接在瀏覽器上觀察 Codis 集群的運行狀態.

codis-server 是Codis 項目維護的一個 Redis 分支, 基于 2.8.21 開發, 加入了 slot的支持和原子的數據遷移指令. Codis 上層的codis-proxy 和 codis-config 只能和這個版本的 Redis 交互才能正常運行.

Codis 依賴 ZooKeeper 來存放數據路由表和 codis-proxy 節點的元信息, codis-config 發起的命令都會通過 ZooKeeper 同步到各個存活的 codis-proxy.

Codis 支持按照Namespace 區分不同的產品, 擁有不同的product name 的產品, 各項配置都不會沖突.

2.  Codis架構

3.  Codis部署

安裝centos服務器3臺:192.168.92.136,192.168.92.138,192.168.92.138

3.1.部署架構

codis有什么用

3.2.部署角色

3.2.1.  Zookeeper集群

192.168.92.136:2181

192.168.92.137:2181

192.168.92.138:2181

3.2.2.  Codis-config

192.168.92.136:18078

3.2.3.  Codis-proxy

192.168.92.137:19000

192.168.92.138:19000

3.2.4.  Codis-server

192.168.92.137:7000、192.168.92.137:7001(主、從)

192.168.92.138:7000、192.168.92.138:7001(主、從)

3.3.部署

3.3.1.  關閉防火墻和selinux(略)

3.3.2.  安裝jdk(略)

codis有什么用

3.3.3.  安裝zookeeper

3.3.3.1.     下載zookeeper

下載地址:http://zookeeper.apache.org/releases.html

3.3.3.2.     解壓zookeeper

tar xf zookeeper-3.4.6.tar.gz  -C /usr/local/

codis有什么用

3.3.3.3.     編輯zookeeper文件
  • 配置文件存放在$ZOOKEEPER_HOME/conf/目錄下,將zoo_sample.cfg文件名稱改為zoo.cfg

mv zoo_sample.cfg zoo.cfg

codis有什么用

  • 編輯zoo.cfg: vizoo.cfg,添加節點

server.1=192.168.92.136:2888:3888

server.2=192.168.92.137:2888:3888

server.3=192.168.92.138:2888:3888

  • 修改data路徑:dataDir=/var/lib/zookeeper

codis有什么用

  • 在data路徑下添加myid文件,內容存放pid,與server.x一致

codis有什么用

3.3.3.4.     啟動zookeeper

執行:./bin/zkServer.sh start

codis有什么用

3.4.安裝go

3.4.1.  下載go

地址:http://golangtc.com/static/go/go1.4.2.linux-amd64.tar.gz

3.4.2.  解壓go

tar xf go1.4.2.linux-amd64.tar.gz -C/usr/local/

codis有什么用

3.4.3.  添加go環境變量

vi /etc/profile,添加如下

GOROOT=/usr/local/go

GOPATH=/usr/local/go/work

codis有什么用

source /etc/profile

codis有什么用

3.5.安裝Development Tool,git

yum install -y “Development Tool

yum install –y git

3.6.安裝codis

3.6.1.  下載編譯codis

    go get -u-d github.com/wandoulabs/codis

codis有什么用

cd $GOPATH/src/github.com/wandoulabs/codis

./bootstrap.sh

codis有什么用

make gotest

codis有什么用

3.6.2.  編輯config.ini文件

修改zookeeper地址和dashboard地址:vi config.ini

codis有什么用

codis有什么用

codis有什么用

每個proxy的proxy_id必須不同

3.6.3.  啟動dashboard

mkdir log

./bin/codis-config-c config.ini -L ./log/dashboard.log dashboard &

codis有什么用

3.6.4.  初始化solts

./bin/codis-config -c config.ini slot init –f

codis有什么用

3.6.5.  啟動codis-server

  • 啟動master:mkdir 7000

cp extern/redis-2.8.21/redis.conf 7000/

修改port、bind、maxmemory:vi 7000/redis.conf

codis有什么用

codis有什么用

codis有什么用

啟動:./bin/codis-server 7000/redis.conf

codis有什么用

  • 啟動slave: mkdir 7001

cp extern/redis-2.8.21/redis.conf 7001/

修改port、bind、maxmemory:vi 7001/redis.conf

codis有什么用

codis有什么用

codis有什么用

啟動:./bin/codis-server 7001/redis.conf

codis有什么用

3.6.6.  添加redis server group

./bin/codis-config -cconfig.ini server add 1 192.168.92.137:7000 master

codis有什么用

./bin/codis-config -c config.ini server add1 192.168.92.137:7001 slave

codis有什么用

192.168.92.138節點啟動redis如上

3.6.7.   設置server group 服務的 slot范圍

./bin/codis-config -c config.ini slotrange-set 0 600 1 online

./bin/codis-config -c config.ini slotrange-set 601 1023 2 online

codis有什么用

3.6.8.  啟動 codis-proxy

bin/codis-proxy -c config.ini -L ./log/proxy.log  --cpu=1 --addr=0.0.0.0:19000--http-addr=0.0.0.0:11000 &

codis有什么用

3.6.9.  瀏覽器訪問

http://192.168.92.136:18087/admin/

codis有什么用

codis有什么用

4.  數據遷移

將group_1的solt:599,600遷移到group_2

codis有什么用

4.1.命令行遷移方式

執行:bin/codis-config -c config.ini slot migrate 599 600 2 --delay=10

4.2.Dashboard遷移方式

codis有什么用

codis有什么用

5.  Auto Rebalance

Codis 支持動態的根據實例內存, 自動對slot進行遷移, 以均衡數據分布.

要求:

  • 所有的codis-server都必須設置了maxmemory參數

  • 所有的 slots 都應該處于 online 狀態, 即沒有遷移任務正在執行

  • 所有 server     group 都必須有 Master

5.1.命令行方式:

$ bin/codis-config slot rebalance

5.2.Dashboard方式

codis有什么用

6.  HA

當一個group的master掛掉的時候,codis不會自動的將某個slave升級成master

該工具會在檢測到master掛掉的時候將其下線并選擇其中一個slave提升為master繼續提供服務

go get github.com/ngaut/codis-ha

cd /usr/local/go/work/src/github.com/ngaut/codis-ha

go build

./codis-ha--codis-config=192.168.92.136:18087 --productName=test &

codis有什么用

7.  Jodis客戶端

使用循環調度策略方式多個proxy

<>
    <>com.wandoulabs.jodis</>
    <>jodis</>
    <>0.1.2</>
</>
JedisResourcePool jedisPool = RoundRobinJedisPool(, 30000, , JedisPoolConfig());
(Jedis jedis = jedisPool.getResource()) {
    jedis.set(, );
    String value = jedis.get();
    System..println(value);
}

8.  Codis不支持的命令

Command Type

Command Name

Keys

KEYS


MIGRATE


MOVE


OBJECT


RANDOMKEY


RENAME


RENAMENX


SCAN



Strings

BITOP


MSETNX



Lists

BLPOP


BRPOP


BRPOPLPUSH



Pub/Sub

PSUBSCRIBE


PUBLISH


PUNSUBSCRIBE


SUBSCRIBE


UNSUBSCRIBE



Transactions

DISCARD


EXEC


MULTI


UNWATCH


WATCH



Scripting

SCRIPT



Server

BGREWRITEAOF


BGSAVE


CLIENT


CONFIG


DBSIZE


DEBUG


FLUSHALL


FLUSHDB


LASTSAVE


MONITOR


RESTORE


SAVE


SHUTDOWN


SLAVEOF


SLOWLOG


SYNC


TIME



Codis Slot

SLOTSCHECK


SLOTSDEL


SLOTSINFO


SLOTSMGRTONE


SLOTSMGRTSLOT


SLOTSMGRTTAGONE


SLOTSMGRTTAGSLOT

9.  Codis半支持的命令

需要將以下key放入同一slot才能支持,方式采用{},如key為“bar{zap}”,則只會對zap進行hash

Command Type

Command Name

Lists

RPOPLPUSH

Sets

SDIFF


SINTER


SINTERSTORE


SMOVE


SUNION


SUNIONSTORE

Sorted Sets

ZINTERSTORE


ZUNIONSTORE

HyperLogLog

PFMERGE

Scripting

EVAL


EVALSHA

10.  附錄

10.1.修改dashboard端口號

 1.修改config文件

dashboard_addr=192.168.92.136:19001

 2.啟動命令變更為:

./bin/codis-config -cconfig.ini -L ./log/dashboard.log dashboard --addr=192.168.92.136:19001 &

codis有什么用

codis有什么用

感謝各位的閱讀!關于“codis有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲阜市| 尼勒克县| 沙雅县| 通江县| 古交市| 清镇市| 普定县| 禄丰县| 龙陵县| 保山市| 福安市| 叶城县| 封开县| 西昌市| 郓城县| 岚皋县| 蒙山县| 车险| 罗山县| 泽普县| 安丘市| 湘阴县| 南开区| 清徐县| 翁牛特旗| 乌鲁木齐市| 赤壁市| 宣化县| 牡丹江市| 上林县| 米脂县| 丽江市| 青铜峡市| 游戏| 中超| 错那县| 遵义市| 石城县| 灵石县| 海原县| 桂东县|