国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

圖解redis的client的實現

這篇具有很好參考價值的文章主要介紹了圖解redis的client的實現。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.引言

2.客戶端屬性

2.1套接字描述符

2.2 name

2.3?客戶端標志

2.4輸入緩沖區(qū)

2.5命令與命令參數

2.6命令實現的函數

2.7輸出緩沖區(qū)

2.8身份驗證

?2.9 時間

3.客戶端的創(chuàng)建的關閉

3.1普通客戶端的創(chuàng)建

?3.2普通客戶端的關閉

3.AOF的偽客戶端

? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??


1.引言

Redis服務器是典型的一對多服務器程序一個服務器可以與多個 客戶端建立網絡連接,每個客戶端可以向服務器發(fā)送命令請求,而服務器則接收并處理客戶端發(fā)送的命令請求,并向客戶端返回命令回復
通過使用由 I/O 多路復用技術實現的文件事件處理器, Redis 服務器 使用單線程單進程的方式來處理命令請求,并與多個客戶端進行網絡通信
所用數據結構成員概述():
1.客戶端的套接字描述符。
2.客戶端的名字。
3.客戶端的標志值(flag)。
4.指向客戶端正在使用的數據庫的指針,以及該數據庫的號碼。
5.客戶端當前要執(zhí)行的命令、命令的參數、命令參數的個數,以及指向命令實現函數的指針。
6.· 客戶端的輸入緩沖區(qū)和輸出緩沖區(qū)。
7.· 客戶端的復制狀態(tài)信息,以及進行復制所需的數據結構。
8.· 客戶端執(zhí)行 BRPOP 、 BLPOP 等列表阻塞命令時使用的數據結構。
9.· 客戶端的事務狀態(tài),以及執(zhí)行 WATCH 命令時用到的數據結構。
10.· 客戶端執(zhí)行發(fā)布與訂閱功能時用到的數據結構。
11.· 客戶端的身份驗證標志。 · 客戶端的創(chuàng)建時間,客戶端和服務器最后一次通信的時間,以及 客戶端的輸出緩沖區(qū)大小超出軟性限制(soft limit)的時間

2.客戶端屬性

客戶端狀態(tài)包含的屬性可以分為兩類:
·一類是比較通用的屬性,這些屬性很與特定功能相關,無論客戶端執(zhí)行的是什么工作,它們都要用到這些屬性。
另外一類是和特定功能相關的屬性,比如操作數據庫時需要用到 的db 屬性和 dictid 屬性,執(zhí)行事務時需要用到的 mstate 屬性,以及執(zhí)行WATCH命令時需要用到的 watched_keys 屬性等等

2.1套接字描述符

typedef struct redisClient {
// ...
int fd;
// ...
} redisClient
根據客戶端類型的不同, fd 屬性的值可以是 -1 或者是大于 -1 的整數:
解析:
1.偽客戶端(fake client)的fd屬性的值為 -1 :偽客戶端處理的命令請 求來源于AOF 文件或者 Lua 腳本,而不是網絡,所以這種客戶端不需要 套接字連接,自然也不需要記錄套接字描述符。目前Redis 服務器會在 兩個地方用到偽客戶端,一個用于載入AOF文件并還原數據庫狀態(tài),而另一個則用于執(zhí)行Lua腳本中包含的Redis命令
2.普通客戶端的fd屬性的值為大于-1的整數:普通客戶端使用套接字來與服務器進行通信,所以服務器會用fd屬性來記錄客戶端套接字的描述符。因為合法的套接字描述符不能是-1,所以普通客戶端的套接字描述符的值必然是大于-1的整數
執(zhí)行CLIENT list命令可以列出目前所有連接到服務器的普通客戶 端,命令輸出中的fd域顯示了服務器連接客戶端所使用的套接字描述 符
127.0.0.1:6379[2]> client list
id=2 addr=127.0.0.1:38462 fd=6 name= age=450796 idle=0 flags=N db=2 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

2.2 name

在默認情況下,一個連接到服務器的客戶端是沒有名字的

使用CLIENT setname命令可以為客戶端設置一個名字,讓客戶端的 身份變得更清晰

client setname second
OK

使用client 展現

client list 
id=3 addr=127.0.0.1:38502 fd=6 name=second age=136 idle=59 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client
id=4 addr=127.0.0.1:38504 fd=7 name= age=22 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

注意name=second

數據結構

typedef struct redisClient {
// ...
robj *name;
// ...
} redisClient;

如果客戶端沒有為自己設置名字,那么相應客戶端狀態(tài)的name屬性 指向NULL指針;相反地,如果客戶端為自己設置了名字,那么name屬 性將指向一個字符串對象,而該對象就保存著客戶端的名字

下圖示例

圖解redis的client的實現

2.3?客戶端標志

客戶端的標志屬性flags記錄了客戶端的角色(role),以及客戶端目前所處的狀態(tài):

typedef struct redisClient {
// ...
int flags;
// ...
} redisClient;

標志形態(tài)

flags = <flag>

flags = <flag1> | <flag2> | ...

每個標志使用一個常量表示,一部分標志記錄了客戶端的角色:

·在主從服務器進行復制操作時,主服務器會成為從服務器的客戶 端,而從服務器也會成為主服務器的客戶端。REDIS_MASTER標志表 示客戶端代表的是一個主服務器,REDIS_SLAVE標志表示客戶端代表 的是一個從服務器

·REDIS_PRE_PSYNC標志表示客戶端代表的是一個版本低于 Redis2.8的從服務器,主服務器不能使用PSYNC命令與這個從服務器進 行同步。這個標志只能在REDIS_SLAVE標志處于打開狀態(tài)時使用。
·REDIS_LUA_CLIENT標識表示客戶端是專門用于處理Lua腳本里面包含的Redis命令的偽客戶端。
另外一部分標志則記錄客戶端目前所處的狀態(tài)
·REDIS_MONITOR標志表示客戶端正在執(zhí)行MONITOR命令。
·REDIS_UNIX_SOCKET標志表示服務器使用UNIX套接字來連接客 戶端。
·REDIS_BLOCKED標志表示客戶端正在被BRPOP、BLPOP等命令阻塞。
·REDIS_UNBLOCKED標志表示客戶端已經從REDIS_BLOCKED標 志所表示的阻塞狀態(tài)中脫離出來,不再阻塞。REDIS_UNBLOCKED標 志只能在REDIS_BLOCKED標志已經打開的情況下使用。
·REDIS_MULTI標志表示客戶端正在執(zhí)行事務。
·REDIS_DIRTY_CAS標志表示事務使用WATCH命令監(jiān)視的數據庫 鍵已經被修改,REDIS_DIRTY_EXEC標志表示事務在命令入隊時出現 了錯誤,以上兩個標志都表示事務的安全性已經被破壞,只要這兩個標 記中的任意一個被打開,EXEC命令必然會執(zhí)行失敗。這兩個標志只能 在客戶端打開了REDIS_MULTI標志的情況下使用。
·REDIS_CLOSE_ASAP標志表示客戶端的輸出緩沖區(qū)大小超出了服務器允許的范圍,服務器會在下一次執(zhí)行serverCron函數時關閉這個客 戶端,以免服務器的穩(wěn)定性受到這個客戶端影響。積存在輸出緩沖區(qū)中 的所有內容會直接被釋放,不會返回給客戶端。
·REDIS_CLOSE_AFTER_REPLY標志表示有用戶對這個客戶端執(zhí) 行了CLIENT KILL命令,或者客戶端發(fā)送給服務器的命令請求中包含了 錯誤的協議內容。服務器會將客戶端積存在輸出緩沖區(qū)中的所有內容發(fā) 送給客戶端,然后關閉客戶端。
·REDIS_ASKING標志表示客戶端向集群節(jié)點(運行在集群模式下 的服務器)發(fā)送了ASKING命令。
·REDIS_FORCE_AOF標志強制服務器將當前執(zhí)行的命令寫入到 AOF文件里面
REDIS_FORCE_REPL標志強制主服務器將當前執(zhí)行的 命令復制給所有從服務器。執(zhí)行PUBSUB命令會使客戶端打開 REDIS_FORCE_AOF標志,執(zhí)行SCRIPT LOAD命令會使客戶端打開 REDIS_FORCE_AOF標志和REDIS_FORCE_REPL標志。
·在主從服務器進行命令傳播期間,從服務器需要向主服務器發(fā)送 REPLICATION ACK命令,在發(fā)送這個命令之前,從服務器必須打開主 服務器對應的客戶端的REDIS_MASTER_FORCE_REPLY標志,否則發(fā) 送操作會被拒絕執(zhí)行。

2.4輸入緩沖區(qū)

客戶端狀態(tài)的輸入緩沖區(qū)用于保存客戶端發(fā)送的命令請求:

typedef struct redisClient {
// ...
sds querybuf;
// ...
} redisClient;

舉個例子:

SET key value

那么客戶端狀態(tài)的querybuf屬性將是一個包含以下內容的SDS值

*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n

下圖展現這個SDS值以及querybuf屬性的樣子
圖解redis的client的實現

?

2.5命令與命令參數

在服務器將客戶端發(fā)送的命令請求保存到客戶端狀態(tài)的querybuf屬性之后,服務器將對命令請求的內容進行分析,并將得出的命令參數以及命令參數的個數分別保存到客戶端狀態(tài)的argv屬性和argc屬性

argv屬性是一個數組,數組中的每個項都是一個字符串對象,其中 argv[0]是要執(zhí)行的命令,而之后的其他項則是傳給命令的參數。
argc屬性則負責記錄argv數組的長度
舉個例子 對于 上面命令 set key value
圖解redis的client的實現

?

2.6命令實現的函數

當服務器從協議內容中分析并得出argv屬性和argc屬性的值之后, 服務器將根據項argv[0]的值,在命令表中查找命令所對應的命令實現函數(repertoire)

下圖展示了一個命令表示例,該表是一個字典,字典的鍵是一個 SDS結構,保存了命令的名字,字典的值是命令所對應的redisCommand 結構,這個結構保存了命令的實現函數、命令的標志、命令應該給定的 參數個數、命令的總執(zhí)行次數和總消耗時長等統(tǒng)計信

圖解redis的client的實現

?當程序在命令表中成功找到argv[0]所對應的redisCommand結構時, 它會將客戶端狀態(tài)的cmd指針指向這個結構

typedef struct redisClient {
// ...
struct redisCommand *cmd;
// ...
} redisClient;

之后,服務器就可以使用cmd屬性所指向的redisCommand結構,以 及argv、argc屬性中保存的命令參數信息,調用命令實現函數,執(zhí)行客戶端指定的命令

下圖舉例 演示了服務器在argv[0]為"SET"時,查找命令表并將客戶端 狀態(tài)的cmd指針指向目標redisCommand結構的整個過程

圖解redis的client的實現

?note1?針對命令表的查找操作不區(qū)分輸入字母的大小寫,所以無論argv[0] 是"SET"、"set"、或者"SeT"等等,查找的結果都是相同的

2,7輸出緩沖區(qū)

執(zhí)行命令所得的命令回復會被保存在客戶端狀態(tài)的輸出緩沖區(qū)里 面,每個客戶端都有兩個輸出緩沖區(qū)可用,一個緩沖區(qū)的大小是固定 的,另一個緩沖區(qū)的大小是可變的

1.固定大小的緩沖區(qū)用于保存那些長度比較小的回復,比如OK、簡 短的字符串值、整數值、錯誤回復等等

2.可變大小的緩沖區(qū)用于保存那些長度比較大的回復,比如一個非 常長的字符串值,一個由很多項組成的列表,一個包含了很多元素的集合等等

客戶端的固定大小緩沖區(qū)由buf和bufpos兩個屬性組成

typedef struct redisClient {
// ...
char buf[REDIS_REPLY_CHUNK_BYTES];
int bufpos;
// ...
} redisClient;

buf是一個大小為REDIS_REPLY_CHUNK_BYTES字節(jié)的字節(jié)數組,而bufpos屬性則記錄了buf數組目前已使用的字節(jié)數量。

REDIS_REPLY_CHUNK_BYTES常量目前的默認值為16*1024,也 即是說,buf數組的默認大小為16KB

舉個例子:展現回復一個"OK”

圖解redis的client的實現

?note2:當buf數組的空間已經用完,或者回復因為太大而沒辦法放進buf數 組里面時,服務器就會開始使用可變大小緩沖區(qū)

可變大小緩沖區(qū)由reply鏈表和一個或多個字符串對象組成:

typedef struct redisClient {
// ...
list *reply;
// ...
} redisClient;

通過使用鏈表來連接多個字符串對象,服務器可以為客戶端保存一 個非常長的命令回復,而不必受到固定大小緩沖區(qū)16KB大小的限制。

圖解redis的client的實現

?2.8身份驗證

客戶端狀態(tài)的authenticated屬性用于記錄客戶端是否通過了身份驗證:

authenticated屬性僅在服務器啟用了身份驗證功能時使用。如果服 務器沒有啟用身份驗證功能的話,那么即使authenticated屬性的值為 0(這是默認值),服務器也不會拒絕執(zhí)行客戶端發(fā)送的命令請求。 關于服務器身份驗證的更多信息可以參考示例配置文件對 requirepass選項的相關說明

設置密碼

config requirepass 111111
typedef struct redisClient {
// ...
int authenticated;
// ...
} redisClient;

如果authenticated的值為0,那么表示客戶端未通過身份驗證;如果 authenticated的值為1,那么表示客戶端已經通過了身份驗證

舉個例子?對于一個尚未進行身份驗證的客戶端來說,客戶端狀態(tài) 的authenticated屬性

圖解redis的client的實現

?當客戶端authenticated屬性的值為0時,除了AUTH命令之外,客戶 端發(fā)送的所有其他命令都會被服務器拒絕執(zhí)行

redis> PING
(error) NOAUTH Authentication required.
redis> SET msg "hello world"
(error) NOAUTH Authentication required.

當客戶端通過AUTH命令成功進行身份驗證之后,客戶端狀態(tài) authenticated屬性的值就會從0變?yōu)?

# authenticated
屬性的值從0
變?yōu)?
redis> AUTH 123321
OK
redis> PING
PONG
redis> SET msg "hello world"
Ok

2.9 時間

typedef struct redisClient {
// ...
time_t ctime;
time_t lastinteraction;
time_t obuf_soft_limit_reached_time;
// ...
} redisClient

1.ctime屬性記錄了創(chuàng)建客戶端的時間,這個時間可以用來計算客戶 端與服務器已經連接了多少秒,CLIENT list命令的age域記錄了這個秒 數

2.astinteraction屬性記錄了客戶端與服務器最后一次進行互動 (interaction)的時間,這里的互動可以是客戶端向服務器發(fā)送命令請 求,也可以是服務器向客戶端發(fā)送命令回復。

lastinteraction屬性可以用來計算客戶端的空轉(idle)時間,也即是,距離客戶端與服務器最后一次進行互動以來,已經過去了多少秒, CLIENT list命令的idle域記錄了這個秒數

3.客戶端的創(chuàng)建的關閉

3.1普通客戶端的創(chuàng)建

如果客戶端是通過網絡連接與服務器進行連接的普通客戶端,那么 在客戶端使用connect函數連接到服務器時,服務器就會調用連接事件處 理器,為客戶端創(chuàng)建相應的客戶端狀態(tài),并將這個 新的客戶端狀態(tài)添加到服務器狀態(tài)結構clients鏈表的末尾

舉個例子:假設當前有c1和c2兩個普通客戶端正在連接服務器,那 么當一個新的普通客戶端c3連接到服務器之后,服務器會將c3所對應的 客戶端狀態(tài)添加到clients鏈表的末尾

圖解redis的client的實現

?3.2普通客戶端的關閉

一個普通客戶端可以因為多種原因而被關閉:

如果客戶端進程退出或者被殺死,那么客戶端與服務器之間的網 絡連接將被關閉,從而造成客戶端被關閉。

·如果客戶端向服務器發(fā)送了帶有不符合協議格式的命令請求,那么這個客戶端也會被服務器關閉。 ·如果客戶端成為了CLIENT KILL命令的目標,那么它也會被關 閉。

·如果用戶為服務器設置了timeout配置選項,那么當客戶端的空轉 時間超過timeout選項設置的值時,客戶端將被關閉。不過timeout選項有 一些例外情況:如果客戶端是主服務器(打開了REDIS_MASTER標 志),從服務器(打開了REDIS_SLAVE標志),正在被BLPOP等命令 阻塞(打開了REDIS_BLOCKED標志),或者正在執(zhí)行SUBSCRIBE、 PSUBSCRIBE等訂閱命令,那么即使客戶端的空轉時間超過了timeout選 項的值,客戶端也不會被服務器關閉。

·如果客戶端發(fā)送的命令請求的大小超過了輸入緩沖區(qū)的限制大小 (默認為1 GB),那么這個客戶端會被服務器關閉。 ·如果要發(fā)送給客戶端的命令回復的大小超過了輸出緩沖區(qū)的限制 大小,那么這個客戶端會被服務器關閉。

3.AOF的偽客戶端

服務器在載入AOF文件時,會創(chuàng)建用于執(zhí)行AOF文件包含的Redis 命令的偽客戶端,并在載入完成之后,關閉這個偽客戶端文章來源地址http://www.zghlxwxcb.cn/news/detail-400857.html

? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

到了這里,關于圖解redis的client的實現的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • linux下安裝mysql客戶端client

    linux下安裝mysql客戶端client

    1. 下載mysql客戶端 MySQL的Linux客戶端官網下載地址 根據Linux的系統(tǒng)版本選擇下載對應的rpm安裝包(如下所示),這里選擇的是mysql8.0.27版本的redhat8系列的MySQL客戶端(可看到有四個rpm包,都必須下載,缺一不可?。。。?2. 上傳到Linux 這里是上傳到/usr/local/src目錄下 3. 安裝mysql客

    2024年02月01日
    瀏覽(25)
  • client-go源碼結構及客戶端對象

    client-go源碼結構及客戶端對象

    G? Goup 資源組,包含一組資源操作的集合 V Version 資源版本,用于區(qū)分不同API的穩(wěn)定程度及兼容性 R Resource 資源信息,用于區(qū)分不同的資源API K Kind 資源對象類型,每個資源對象都需要Kind來區(qū)分它自身代表的資源類型 (1)通過 GVR 可以構造 REST Api ?進行接口調用,而 GVK 可以

    2024年04月26日
    瀏覽(65)
  • C# 簡易TCP網口調試助手(一) 客戶端Client

    C# 簡易TCP網口調試助手(一) 客戶端Client

    ? 最近的上位機開發(fā)工作中開始頻繁涉及到網口、串口的通訊,網上找了各種資料和帖子都沒怎么找到好用的開源代碼或者工具。目前找到幾個好一點的方式來實現的網口和串口通訊工具包,先寫個好用的TCP的negut包記錄下來,將使用的步驟寫下來做個記錄。 ? 本博客主要用

    2024年04月13日
    瀏覽(38)
  • Python - 【socket】 客戶端client重連處理簡單示例Demo(一)

    Python - 【socket】 客戶端client重連處理簡單示例Demo(一)

    在Python中,使用socket進行網絡通信時,如果連接斷開,可以通過以下步驟實現重連處理 這個函數使用一個while循環(huán),不斷地嘗試建立 socket 連接,如果出現 socket.error 異常,則打印異常信息并等待5秒鐘重試。當連接成功時,函數會返回一個連接套接字。 在主程序中,可以使用

    2024年02月14日
    瀏覽(26)
  • Zookeeper中的客戶端配置認證(zoo_client.conf)

    Zookeeper中的客戶端配置認證可以使用兩種方法:digest和Kerberos。 客戶端鑒權配置 該配置是用于啟用Zookeeper SASL認證提供程序的選項,它是Zookeeper中一種基于Kerberos的身份驗證方式。SASL(Simple Authentication and Security Layer)是一種通用的安全聯接層協議,通常用于安全認證。 具體

    2024年02月13日
    瀏覽(33)
  • JCG無線路由器的AP客戶端模式設置圖解

    其實就是將無線路由器當成一個無線網卡來使用 需要注意的地方就是 要將這個路由器的ip段與原來的ip段不一樣,例如原來的是 192.168.1.1那么,這個路由器(當無線上網卡)的路由器的ip段可以為 192.168.2.1等。 下面的詳細的介紹: AP Client模式可以提供WDS之外的另一種無線網絡擴

    2024年02月05日
    瀏覽(26)
  • [Redis]Redis客戶端

    [Redis]Redis客戶端

    Redis 給我們提供了三種客戶端,分別是: 命令行客戶端 圖形化桌面客戶端 編程客戶端 在 Redis 安裝完成之后,就有了 Redis 命令行客戶端。即 Redis 安裝完成后就自帶了命令行客戶端。 Redis 自帶的命令行客戶端就是 redis-cli。 option:選項 其中常見的options有: -h 127.0.0.1 :指定

    2024年02月06日
    瀏覽(21)
  • Spring MVC學習隨筆-控制器(Controller)開發(fā)詳解:接受客戶端(Client)請求參數

    Spring MVC學習隨筆-控制器(Controller)開發(fā)詳解:接受客戶端(Client)請求參數

    學習視頻:孫哥說SpringMVC:結合Thymeleaf,重塑你的MVC世界?。八从械腤eb開發(fā)探索之旅 ?? 1. 接受客戶端(client)請求參數[講解]2. 調用業(yè)務對象3. 頁面跳轉 所謂簡單變量:指的就是8種基本類型+String這些類型的變量。把這些類型的變量,作為控制器方法的形參,用于接受

    2024年02月05日
    瀏覽(39)
  • Linux網絡編程:Socket套接字編程(Server服務器 Client客戶端)

    Linux網絡編程:Socket套接字編程(Server服務器 Client客戶端)

    文章目錄: 一:定義和流程分析 1.定義 2.流程分析? 3.網絡字節(jié)序 二:相關函數? IP地址轉換函數inet_pton inet_ntop(本地字節(jié)序 網絡字節(jié)序) socket函數(創(chuàng)建一個套接字) bind函數(給socket綁定一個服務器地址結構(IP+port)) listen函數(設置最大連接數或者說能同時進行三次握手的最

    2024年02月12日
    瀏覽(35)
  • 在Spring Boot微服務集成Kafka客戶端(kafka-clients)操作Kafka

    記錄 :459 場景 :在Spring Boot微服務集成Kafka客戶端kafka-clients-3.0.0操作Kafka。使用kafka-clients的原生KafkaProducer操作Kafka生產者Producer。使用kafka-clients的原生KafkaConsumer操作Kafka的消費者Consumer。 版本 :JDK 1.8,Spring?Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka安裝 :https://blog.csdn.ne

    2024年02月12日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包