成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自研高性能的Redis中間件

存儲 存儲軟件 Redis
目前業界有很多Redis Proxy,比如鼎鼎大名的Codis。用別人的產品多少會感覺內心不爽。作為一個愛造的程序員,當然也要自己寫一個Redis Proxy了。

[[409097]]

本文轉載自微信公眾號「漫漫技術路」,作者劉蒞。轉載本文請聯系漫漫技術路公眾號。  

接口請求量越來越大,為了縮短服務的響應時間、減輕數據庫的壓力,我們通常會在數據庫前架設Redis。

但是單臺Redis的內存有限,所以我們需要部署多個Redis節點。在業務里,我們可以根據key,將讀寫請求轉發到不同的Redis節點,或者業務直連一個代理Proxy,請求路由規則由Proxy處理。

Proxy對于客戶端來說,就相當于一個Redis,客戶端連接到Redis上和連接到Proxy上,從本質上沒什么區別。

目前業界有很多Redis Proxy,比如鼎鼎大名的Codis。用別人的產品多少會感覺內心不爽。作為一個愛造的程序員,當然也要自己寫一個Redis Proxy了。

本文就為大家介紹一個筆者自研的Redis Proxy——Nedis。

架構圖

特點

1、無狀態,Nedis節點可水平擴展

2、數據分片、讀寫分離

3、支持多種路由

4、基于Netty開發,性能良好、輕量級

實現原理

我們從架構圖中可以看到,Nedis主要由兩大組件組成,netty-client和netty-server。

netty-client作用如下

Redis的客戶端,如Jedis、redis-cli可以直接連接到Nedis。準確的說,Redis客戶端連接到Nedis的netty-client組件,netty-client組件是處理Redis客戶端發送的請求,然后對請求進行簡單的解碼,解析到key以后,根據key的hash值,將請求轉發到相應的netty-server上。

netty-server作用如下

netty-server起到一個承上啟下的作用。上承netty-client,接收Redis客戶端的請求,下接Redis讀寫分離集群,將Redis客戶端的請求發送給Redis,Redis的響應給netty-server,netty-server再把數據通過channel返回給Redis客戶端。

Nedis啟動后,會啟動多個netty-server,每個netty-server會連接到一個Redis讀寫分離集群中。Nedis的端口、Redis讀寫分離集群的信息,都在配置文件中進行配置。

下面給大家演示一下吧

信息
IP
端口
角色
redis1
127.0.0.1
6379
redis-server
redis2
127.0.0.1 6381 redis-server
Nedis
127.0.0.1
6380
proxy

啟動了兩個Redis,端口分別是6379和6381,然后啟動Nedis連接這兩個Redis,Nedis端口是6380。通過redis-cli分別連接redis和Nedis,然后在連接Nedis的客戶端輸入命令,可以在monitor中看到,達到了根據key的hash值,對數據分片。

一些小細節

遇到keys命令怎么辦?

對于數據庫的Proxy,分庫分表中間件MyCat、Shardingsphere等,我們通過分表字段,比如userId、主鍵,是很容易查到我們想要的數據。但是通過非分表字段,如user_name,create_time,查詢需要掃描全部數據。

對于Redis的Proxy也一樣,如keys命令、info命令等,需要查全部Redis節點,然后把數據匯總后返回給客戶端。

在Nedis里,是禁止keys等命令的。如果Nedis收到keys等命令,Nedis會隨機選擇一臺Redis,將單臺Redis的數據返回給客戶端。

單臺Nedis扛不住怎么辦?

Jedis等客戶端連接一個Nedis節點,如果一個Nedis節點性能不足,可以將Nedis分散步部署多臺,水平擴展提高Nedis集群性能和可用性。

未來規劃

總的來說,Nedis還有很多功能需要完善。

1、支持讀寫分離

2、配置熱更新

3、支持指定key路由到指定Redis上

 

4、支持多種路由規則,如一致性哈希,減少由于Redis擴容或縮容,導致緩存穿透問題

 

責任編輯:武曉燕 來源: 漫漫技術路
相關推薦

2016-11-11 21:00:46

中間件

2011-05-24 15:10:48

2021-02-11 08:21:02

中間件開發CRUD

2022-02-13 23:04:28

RedisRabbitMQKafka

2018-02-01 10:19:22

中間件服務器系統

2018-07-29 12:27:30

云中間件云計算API

2015-02-07 21:52:45

PaaS中間件

2013-03-13 10:37:22

中間件Windows

2018-05-02 16:23:24

中間件RPC容器

2022-05-17 17:18:40

Kite字節跳動微服務框架

2018-03-19 15:26:23

數據庫Redis中間件

2012-11-30 10:21:46

移動中間件

2023-06-29 10:10:06

Rocket MQ消息中間件

2023-10-24 07:50:18

消息中間件MQ

2009-06-16 15:55:06

JBoss企業中間件

2021-06-15 10:01:02

應用系統軟件

2022-11-18 07:54:02

Go中間件項目

2022-08-05 20:00:26

架構數據分析

2012-09-13 15:48:16

云計算中間件

2015-12-21 14:56:12

Go語言Http網絡協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日夜夜精品免费视频 | 免费看黄视频网站 | 久久9精品 | 亚洲精品一区二区在线观看 | 日韩欧美三级电影 | 国产精品久久久亚洲 | 国产精品一区二区在线免费观看 | 美女久久 | 男女污污动态图 | 噜噜噜噜狠狠狠7777视频 | 福利视频网 | 国产精品视频久久久久 | 亚洲国产精品久久久 | 男女羞羞视频在线 | 黄色大片免费网站 | 日韩成人av在线播放 | 中文字幕在线观看第一页 | 青青草精品视频 | 久草电影网 | 国产 欧美 日韩 一区 | 久久国内精品 | 99精品国产一区二区三区 | 亚洲高清在线观看 | 日韩成人在线免费观看 | 国产精品18久久久久久白浆动漫 | 精品国产一区二区三区日日嗨 | 91亚洲精品国偷拍自产在线观看 | 99久久国产综合精品麻豆 | 中文字幕av在线 | 久久精点视频 | 亚洲高清一区二区三区 | 国产午夜视频 | 成人精品一区二区三区 | 久久亚洲天堂 | 久久99精品久久久97夜夜嗨 | 午夜伦理影院 | 操久久| 亚洲av一级毛片 | 在线亚州 | 亚洲一区二区高清 | 91免费版在线观看 |