2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
डाटाबेस स्तरीय लेनदेन
दत्तांशकोशस्तरस्य व्यवहारः एकः कार्यसमूहः अस्ति यः सर्वे सफलतया निष्पादयन्ति अथवा तेषु कश्चन अपि न निष्पादयति ।
दत्तांशकोशव्यवहारस्य चत्वारि प्रमुखाणि लक्षणानि
रेडिसः व्यवहारः
Redis व्यवहारः आदेशानां समुच्चयः अस्ति व्यवहारे सर्वे आदेशाः क्रमबद्धाः भविष्यन्ति तथा च आदेशानां श्रृङ्खला एकवारं, क्रमिकरूपेण, अनन्यरूपेण च निष्पादिता भविष्यति ।
MULTI
व्यवहारं आरभत;EXEC
आदेशः व्यवहारं प्रेरयति;
बहु、Exec、त्याग
लेनदेन निवेशतःMulti
यदा आदेशः आरभ्यते तदा प्रविष्टाः आदेशाः एकैकशः आदेशबफरपङ्क्तौ धक्कायन्ते, यावत्...Exec
तदनन्तरं Redis पूर्वस्मिन् आदेशबफरपङ्क्तौ आदेशान् क्रमेण निष्पादयिष्यति ।दलनिर्माणप्रक्रियायाः समये भवान् उत्तीर्णः भवितुम् अर्हतिdiscard
आगच्छन्तु दलं त्यजन्तु।
उदाहरण
127.0.0.1:6379> set t1 1
OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set id 12
QUEUED
127.0.0.1:6379(TX)> get id
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> get t1
QUEUED
127.0.0.1:6379(TX)> EXEC
1) OK
2) "12"
3) (integer) 2
4) (integer) 3
5) "3"
व्यवहारं परित्यजन्तु
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set name z3
QUEUED
127.0.0.1:6379(TX)> set age 29
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> DISCARD
OK
सर्वे एकत्र उपविष्टाः
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set name z3
QUEUED
127.0.0.1:6379(TX)> get name
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> get t1
QUEUED
127.0.0.1:6379(TX)> set email
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379(TX)> exec
(error) EXECABORT Transaction discarded because of previous errors.
सूचना:
आदेशसमूहे अशुद्धनिर्देशाः सन्ति (ध्यायन्तु यत् ते सर्वे सम्बद्धाः सन्ति, सर्वे च विफलाः भवन्ति) ।
प्रत्येकं अन्यायस्य स्वामिः भवति, प्रत्येकं ऋणस्य स्वामिः भवति
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set age 11
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> set email [email protected]
QUEUED
127.0.0.1:6379(TX)> incr email
QUEUED
127.0.0.1:6379(TX)> get age
QUEUED
127.0.0.1:6379(TX)> exec
1) OK
2) (integer) 5
3) OK
4) (error) ERR value is not an integer or out of range
5) "11"
सूचना:
रनटाइम् दोषाणां कृते अर्थात् अव्याकरणदोषाणां कृते सम्यक् आदेशाः निष्पादिताः भविष्यन्ति, अशुद्धाः आदेशाः च त्रुटिं प्रत्यागमिष्यन्ति ।
अवलोकनम्
विद्यमान उद्यमानाम् मध्ये ८०% कम्पनयः अधिकतया रेडिस् स्वतन्त्रसेवानां उपयोगं कुर्वन्ति वास्तविकपरिदृश्येषु एकस्मिन् नोड् इत्यत्र रेडिस् जोखिमानां प्रवणाः भवन्ति ।
समस्यानां सम्मुखीभवन्:
- यन्त्रस्य विकारः । वयं Redis सर्वरे परिनियोजयामः यदा यन्त्रस्य विफलता भवति तदा अस्माभिः अन्यस्मिन् सर्वरे प्रवासनं करणीयम् अस्ति तथा च दत्तांशः समन्वयितः इति सुनिश्चितं कर्तव्यम् ।
- क्षमता अड़चन। यदा अस्माकं Redis स्मृतिः विस्तारयितुं आवश्यकं भवति तदा 16G स्मृतितः 64G यावत्, एकं यन्त्रं निश्चितरूपेण तत् तृप्तुं न शक्नोति। अवश्यं भवन्तः नूतनं 128G यन्त्रं क्रेतुं शक्नुवन्ति।
समाधानं
वितरितदत्तांशकोशस्य अधिकां भण्डारणक्षमतां प्राप्तुं उच्चसमवर्तीप्रवेशं च सहितुं वयं मूलकेन्द्रीकृतदत्तांशकोशस्य दत्तांशं अन्येषु बहुषु संजालनोड्-मध्ये संगृह्णीमः
सूचना:
एतस्याः एक-नोड्-समस्यायाः समाधानार्थं रेडिस्-इत्यस्य उच्च-उपलब्धतां प्राप्तुं, दत्तांशस्य सेवानां च उच्च-उपलब्धतां सुनिश्चित्य दत्तांशस्य अनावश्यक-बैकअपं प्राप्तुं प्रतिकृतिं कर्तुं अन्येषु नोड्-मध्ये आँकडानां बहुप्रतियाः अपि परिनियोजयिष्यति
स्वामी-दासप्रतिकृतिः किम्
Master-slave replication इति एकस्मात् Redis सर्वरात् अन्येभ्यः Redis सर्वरेभ्यः आँकडानां प्रतिलिपिं कर्तुं निर्दिशति । पूर्वं मास्टर नोड् इति उच्यते, उत्तरं च स्लेव नोड् इति कथ्यते Data replication एकदिशा भवति, तथा च केवलं master node तः slave node यावत् भवितुम् अर्हति ।
स्वामी-दास-प्रतिकृतिस्य भूमिका
विन्याससञ्चिकां लिखन्तु
नूतनं redis6379.conf रचयन्तु
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb
नूतनं redis6380.conf रचयन्तु
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb
नूतनं redis6381.conf रचयन्तु
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6381.pid
port 6381
dbfilename dump6381.rdb
त्रीणि redis सर्वराणि आरभत
./redis-server ../redis6379.conf
./redis-server ../redis6380.conf
./redis-server ../redis6381.conf
प्रणालीप्रक्रियाः पश्यन्तु
[root@localhost src]# ps -ef |grep redis
root 40737 1 0 22:05 ? 00:00:00 ./redis-server *:6379
root 40743 1 0 22:05 ? 00:00:00 ./redis-server *:6380
root 40750 1 0 22:05 ? 00:00:00 ./redis-server *:6381
root 40758 40631 0 22:05 pts/0 00:00:00 grep --color=auto redis
त्रयाणां होस्ट्-सञ्चालनस्य स्थितिं पश्यन्तु
#打印主从复制的相关信息
./redis-cli -p 6379
./redis-cli -p 6380
./redis-cli -p 6381
127.0.0.1:6379> info replication
127.0.0.1:6380> info replication
127.0.0.1:6381> info replication
दासदत्तांशकोशेन सुसज्जितं किन्तु मुख्यदत्तांशकोशेन न
वाक्य रचना प्रारूपः : १.
slaveof <ip> <port>
उदाहरण:
६३८० तथा ६३८१ दिनाङ्के निष्पादितम् ।
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
होस्ट् इत्यत्र लिखित्वा स्लेव् इत्यत्र दत्तांशं पठन्तु
set k1 v1
स्वामी-दास-प्रतिकृतिः ३ चरणेषु विभक्तुं शक्यते
प्रतिलिपिप्रक्रिया मोटेन ६ प्रक्रियासु विभक्ता अस्ति
info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
4. ping आदेशं प्रेषयन्तु
संयोजनस्य सफलतया स्थापनायाः अनन्तरं दासनोड् प्रथमसञ्चारस्य कृते ping अनुरोधं प्रेषयति ।
परिणाम:
- मास्टर-स्लेव्-योः मध्ये नेटवर्क्-सॉकेट् उपलब्धम् अस्ति वा इति अन्वेष्टुम् ।
- मुख्यनोड् सम्प्रति आदेशान् स्वीकुर्वितुं शक्नोति वा इति अन्वेष्टुम्
एएसडी।
यदि requirepass पैरामीटर् मुख्यनोड् इत्यत्र सेट् भवति तर्हि गुप्तशब्दसत्यापनम् आवश्यकम् अस्ति यत् सत्यापनम् उत्तीर्णं कर्तुं गुप्तशब्दः मुख्यनोड् इत्यस्य समानः अस्ति इति सुनिश्चितं कर्तुं गुप्तशब्दसत्यापनम् आवश्यकम् अस्ति समाप्तं भवति तथा च दासनोड् प्रतिकृतिप्रक्रियाम् पुनः आरभेत ।
दत्तांशसमूहान् समन्वययन्तु।
मुख्य-दास-प्रतिकृति-सम्बद्धता सामान्यतया संवादं कृत्वा, यदा प्रथमवारं प्रतिकृतिः स्थापिता भवति, तदा मुख्य-नोड् स्वस्य धारितान् सर्वान् दत्तांशान् दास-नोड्-इत्यत्र प्रेषयिष्यति
स्वामी-दास समन्वयन रणनीति
यदा मास्टरः दासश्च केवलं संयोजितः भवति तदा पूर्णसमन्वयनं सम्पन्नं भवति तदा वृद्धिशीलसमन्वयनं क्रियते; अवश्यं, यदि आवश्यकं भवति तर्हि दासः कदापि पूर्णसमन्वयनं आरभुं शक्नोति । redis रणनीतिः अस्ति यत्, किमपि न भवतु, प्रथमं वृद्धिशीलसमन्वयनस्य प्रयासः भविष्यति, यदि असफलः भवति तर्हि दासयन्त्रस्य पूर्णसमन्वयनं कर्तुं आवश्यकं भविष्यति
उदाहरणतया
एकं संग्रहणं रक्षन्तु
set name jjy
रिकार्डिङ्ग् आदेशः अस्ति
$3 r n
set r n
$4 r n
name r n
$5 r n
jjy r n
ऑफसेट् | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
---|---|---|---|---|---|---|---|---|---|
बाइट् मूल्यम् | $ | 3 | र | न | $ | 4 | न | एकः | पु |
7. आदेशः निरन्तरं प्रतिलिपितः भवति।
यदा मुख्यनोड् वर्तमानदत्तांशं दासनोड् प्रति समन्वययति तदा प्रतिकृतिस्थापनप्रक्रिया सम्पन्नं भवति । तदनन्तरं, master-slave data consistency सुनिश्चित्य master node निरन्तरं slave nodes मध्ये write आदेशान् प्रेषयिष्यति ।
Redis master-slave replication इत्यस्य दोषाः
यदा होस्ट् मास्टर् अधः गच्छति तदा अस्माभिः स्विच् इत्यस्य समाधानं मैन्युअल् रूपेण कर्तव्यम् ।
उदघाटनस्य विषयाः : १.
एकदा मुख्यनोड् अधः गच्छति तथा च लेखनसेवा उपयोक्तुं न शक्यते तदा भवद्भिः स्वहस्तेन स्विच् कर्तुं, मुख्यनोड् पुनः चयनं कृत्वा, मुख्य-दास-सम्बन्धं हस्तचलितरूपेण सेट् कर्तुं च आवश्यकम् ।
स्वामी-दास स्विचिंग प्रौद्योगिकी
यदा मुख्यसर्वरः अधः गच्छति तदा दाससर्वरं मुख्यसर्वरं प्रति हस्तचलितरूपेण परिवर्तयितुं आवश्यकं भवति, यस्य हस्तहस्तक्षेपस्य आवश्यकता भवति, समयग्राही श्रमप्रधानं च भवति, अपि च सेवायाः समयपर्यन्तं अनुपलब्धतां जनयिष्यतिएषः अनुशंसितः उपायः नास्ति, अधिकतया वयं प्राधान्यं दद्मःसेन्ट्री मोड。
सेंटिनल अवलोकन
सेन्टिनेल् मोड् एकः विशेषः मोड् अस्ति प्रथमं, रेडिस् सेन्टिनेल् इति आदेशाः प्रदाति यथा प्रक्रिया स्वतन्त्रतया चालयिष्यति । सिद्धान्तः अस्ति यत् सेन्टिनेल् आदेशान् प्रेषयित्वा Redis सर्वरस्य प्रतिक्रियायाः प्रतीक्षया बहुविधं चालितानां Redis उदाहरणानां निरीक्षणं करोति ।
सेंटिनल भूमिका
नूतनं sentinel-26379.conf सञ्चिकां रचयन्तु
#端口
port 26379
#守护进程运行
daemonize yes
#日志文件
logfile "26379.log"
sentinel monitor mymaster localhost 6379 2
पैरामीटर् : १.
sentinel monitor mymaster 192.168.92.128 6379 2 विन्यासस्य अर्थः अस्ति यत् sentinel node master node 192.168.92.128:6379 इत्यस्य निरीक्षणं करोति the master node: at least 2 are required केवलं यदा द्वौ सेन्टिनेल् नोड् सहमतौ भवतः तदा एव मास्टर नोड् इत्यस्य विफलता निर्धारयितुं विफलतां च कर्तुं शक्यते ।
नूतनं sentinel-26380.conf सञ्चिकां रचयन्तु
#端口
port 26380
#守护进程运行
daemonize yes
#日志文件
logfile "26380.log"
sentinel monitor mymaster localhost 6379 2
नूतनं sentinel-26381.conf सञ्चिकां रचयन्तु
#端口
port 26381
#守护进程运行
daemonize yes
#日志文件
logfile "26381.log"
sentinel monitor mymaster localhost 6379 2
सेंटिनल नोड् आरभ्यते
redis-sentinel sentinel-26379.conf
सेंटिनल नोड् स्थितिं पश्यन्तु
[root@localhost src]# ./redis-cli -p 26379
127.0.0.1:26379>
127.0.0.1:26379>
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.66.100:6379,slaves=2,sentinels=3
निगरानी चरण
सूचना:
- sentinel (sentinel 1)------>मास्टर (मास्टर) तथा स्लेव (slave) इत्येतयोः कृते info आरभ्य पूर्णसूचनाः प्राप्नुवन्तु।
- sentinel (sentinel 2)------>मास्टर (master) इत्यस्मै info आरभत, भवन्तः विद्यमानस्य sentinel (sentinel 1) इत्यस्य सूचनां ज्ञास्यन्ति, तथा च slave (slave) इत्यनेन सह सम्बद्धाः भविष्यन्ति।
- sentinel (sentinel 2)----->sentinel (sentinel 1) इत्यस्य सदस्यतां आरभत।
अधिसूचना चरण
सेन्टिनेल् सूचनां संग्रहीतुं स्वामिं दासं च निरन्तरं सूचनां प्रेषयति ।
फेलओवर चरण
सूचनाचरणे यदि सेन्टिनेलद्वारा प्रेषिता सूचना गुरुतः प्रतिक्रियां न प्राप्नोति तर्हि तत् स्वामीं SRI_S_DOWN इति चिह्नितं करिष्यति तथा च प्रत्येकं सेंटिनलस्य कृते स्वामिनः स्थितिं प्रेषयिष्यति यदा अन्ये सेंटिनलः स्वामिनः मृतः इति शृण्वन्ति तदा ते वदन्ति अहं न विश्वसिमि अहम् अपि तत् अवलोकयिष्यामि तथा च प्रेषयिष्यामि परिणामाः प्रत्येकेन संरक्षकेण सह साझाः भवन्ति यदा अर्धाः प्रहरणकर्तारः मन्यन्ते यत् स्वामी अधः अस्ति तदा ते स्वामीं SRI_0_DOWN इति चिह्नं करिष्यन्ति।
अत्र प्रश्नः आगच्छति- १.
अस्मिन् समये स्वामिनः प्रतिस्थापनं कर्तव्यं भवति कः स्वामी भविष्यति ।
मतदानं कथं करणीयम्
वीथी:
अहं प्रथमं यस्य सेंटिनलस्य कृते निर्वाचनसूचना प्राप्नोमि तस्य मतदानं करिष्यामि।
केचन प्रकरणाः समाप्ताः कुर्वन्तु : १.
अवलोकनम्
यदा मुख्यनोड् विफलः भवति तदा सेन्टिनेल् इत्यस्य निरीक्षणं स्वचालितविफलतां च प्रदर्शयति ।
असफलतां प्रदर्शयन्तु
master node इत्यस्य वधार्थं kill आदेशस्य उपयोगं कुर्वन्तु
ps aux |grep redis
kill -9 pid
सेंटिनल नोड् सूचनां पश्यन्तु
यदि भवान् तत्क्षणमेव sentinel node इत्यत्र info Sentinel इति आदेशस्य उपयोगं करोति तर्हि तत् द्रष्टुं शक्नोति ।
[root@localhost src]# ./redis-cli -p 26379
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6381,slaves=5,sentinels=3
सूचना:
भवन्तः पश्यन्ति यत् मुख्यनोड् स्विच् ओवर न कृतः, यतः सेन्टिनेल् इत्यनेन मास्टर नोड् इत्यस्य विफलतां ज्ञात्वा स्थानान्तरयितुं किञ्चित् समयः स्यात् ।
नोड 6379 पुनः आरभत
[root@localhost src]# ./redis-cli info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:down
विन्याससञ्चिकाः पुनः लिखिताः भविष्यन्ति
फेलओवर-चरणस्य समये, सेन्टिनेल्-मास्टर-स्लेव्-नोड्-योः विन्याससञ्चिकाः पुनः लिखिताः भविष्यन्ति ।
include /usr/local/redis/redis.conf
pidfile "/var/run/redis_6379.pid"
port 6379
dbfilename "dump6379.rdb"
# Generated by CONFIG REWRITE
daemonize yes
protected-mode no
appendonly yes
slowlog-max-len 1200
slowlog-log-slower-than 1000
save 5 1
user default on nopass ~* &* +@all
dir "/usr/local/redis"
replicaof 127.0.0.1 6381
उपसंहारे
रेडिस् इत्यस्य त्रयः क्लस्टर मोड् सन्ति
सेन्ट्री मोडस्य दोषाः
अभावः:
क्लस्टर मोड अवलोकन
Redis क्लस्टरः बहुभिः मास्टर-स्लेव्-नोड्-समूहैः निर्मितः वितरितः सेवा-समूहः अस्ति अस्य प्रतिकृतिः, उच्च-उपलब्धता, शार्डिंग्-विशेषताः च सन्ति ।
रेडिस समूहस्य लाभाः
Redis क्लस्टर निर्माणार्थं न्यूनातिन्यूनं 3 master nodes आवश्यकाः सन्ति वयम् अत्र 3 masters निर्मामः, प्रत्येकं slave node इत्यनेन सह, कुलम् 6 Redis nodes कृते;
समूहनिर्माणम्
क्रमशः 6379, 6380, 6381, 6382, 6383, 6384 इति पोर्ट् सङ्ख्याभिः सह 6 भिन्नाः redis नोड् रचयन्तु ।
सूचना: dump.rdb तथा appendonly.aof सञ्चिकाः प्रतिलिपिकरणात् पूर्वं विलोपनीयानि।
1. नूतनं विन्याससञ्चिकां रचयन्तु
redis6379.config, redis6380.config, redis6381.config, redis6382.config, redis6383.config, redis6384.config सञ्चिकाः रचयन्तु विन्याससञ्चिकायां पोर्टसङ्ख्यां परिवर्तयन्तु येन सा सञ्चिकापोर्टसङ्ख्यायाः अनुरूपं भवति ।
daemonize yes
dir /usr/local/redis-7.2.4/redis-cluster/6382/
bind 192.168.47.100
port 6382
dbfilename dump6382.rdb
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
पैरामीटर्:
- cluster-config-file: क्लस्टर-स्थायित्व-विन्याससञ्चिका, यस्मिन् अन्येषां नोड्-स्थानानां, स्थायित्वचरानाम् इत्यादीनां स्थितिः भवति, उपरि विन्यस्त-निर्देशिकायां स्वयमेव उत्पद्यते प्रत्येकं नोडं कार्यकाले क्लस्टरविन्याससञ्चिकां परिपालयिष्यति (यथा नोड् योजयितुं वा निष्कासयितुं वा), क्लस्टरस्य सर्वे नोड् विन्याससञ्चिकायां नवीनतमसूचनाः अद्यतनं करिष्यन्ति, तदा पुनः पठिष्यति क्लस्टरसूचना प्राप्तुं विन्याससञ्चिकां, तथा च भवान् सहजतया क्लस्टरं पुनः सम्मिलितुं शक्नोति । क्लस्टर् विन्याससञ्चिका Redis द्वारा परिपालिता अस्ति, तस्याः हस्तचलितसंशोधनस्य आवश्यकता नास्ति ।
- clouster-enabled: क्लस्टरं सक्षमं कुर्वन्तु
पुटं रचयन्तु
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6379/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6380/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6381/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6382/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6383/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6384/
षट् नोड्स आरभत
[root@bogon src]# ./redis-server ../redis6379.config
[root@bogon src]# ./redis-server ../redis6380.config
[root@bogon src]# ./redis-server ../redis6381.config
[root@bogon src]# ./redis-server ../redis6382.config
[root@bogon src]# ./redis-server ../redis6383.config
[root@bogon src]# ./redis-server ../redis6384.config
प्रत्येकं नोड् सफलतया आरभ्यते वा इति पश्यन्तु
[root@bogon src]# ps -ef | grep redis
root 3889 1 0 09:56 ? 00:00:03 ./redis-server 0.0.0.0:6379 [cluster]
root 3895 1 0 09:56 ? 00:00:03 ./redis-server 0.0.0.0:6380 [cluster]
root 3901 1 0 09:57 ? 00:00:03 ./redis-server 0.0.0.0:6381 [cluster]
root 3907 1 0 09:57 ? 00:00:02 ./redis-server *:6382 [cluster]
root 3913 1 0 09:57 ? 00:00:02 ./redis-server 0.0.0.0:6383 [cluster]
root 3919 1 0 09:57 ? 00:00:02 ./redis-server 0.0.0.0:6384 [cluster]
root 4247 2418 0 10:22 pts/0 00:00:00 grep --color=auto redis
क्लस्टरं विन्यस्यताम्
आदेशस्वरूपम्: --cluster-replicas 1 इत्यस्य अर्थः प्रत्येकस्य मास्टरस्य कृते दास-नोड् निर्मातुं
सूचना: अत्र IP इति यन्त्रस्य वास्तविकः IP अस्ति यत्र प्रत्येकं नोड् स्थितम् अस्ति ।
[root@localhost src]# ./redis-cli --cluster create 192.168.47.100:6379 192.168.47.100:6380 192.168.47.100:6381 192.168.47.100:6382 192.168.47.100:6383 192.168.47.100:6384 --cluster-replicas 1
क्लस्टरस्य सत्यापनम्
कस्यचित् ग्राहकस्य सह सम्बद्धतां कुर्वन्तु
./redis-cli -h 192.168.47.100 -p 6379 -c
पैरामीटर् : १.
‐h : मेजबान पता
-p : पोर्ट संख्या
‐c: क्लस्टर मोडं सूचयति
दत्तांशलेखनपरीक्षा
[root@bogon src]# ./redis-cli -p 6379 -c
127.0.0.1:6379> set name zhangsan
-> Redirected to slot [5798] located at 192.168.47.100:6380
OK
192.168.47.100:6380> get name
"zhangsan"
192.168.47.100:6380>
[root@bogon src]# ./redis-cli -p 6383 -c
127.0.0.1:6383> get name
-> Redirected to slot [5798] located at 192.168.47.100:6380
"zhangsan"
192.168.47.100:6380>
[root@bogon src]# ./redis-cli -p 6383 -c
127.0.0.1:6383> readonly
OK
127.0.0.1:6383> get name
"zhangsan"
127.0.0.1:6383>
रेडिस क्लस्टर सर्वे दत्तांशाः १६३८४ स्लॉट् (स्लॉट्) इत्यत्र विभक्ताः सन्ति, प्रत्येकं नोड् स्लॉट् इत्यस्य भागस्य उत्तरदायी भवति । प्रत्येकस्मिन् नोड् मध्ये स्लॉट् सूचना संगृहीता भवति । केवलं मुख्यनोड् कृते स्लॉट् नियुक्ताः भविष्यन्ति, दास नोड् कृते स्लॉट् न नियुक्ताः भविष्यन्ति ।
स्लॉट स्थिति निर्धारण एल्गोरिदम: k1 = 127001
पूर्वनिर्धारितरूपेण, Cluster पूर्णाङ्कमूल्यं प्राप्तुं कुञ्जीमूल्यं हैश कर्तुं crc16 एल्गोरिदमस्य उपयोगं करिष्यति, ततः विशिष्टं स्लॉट् प्राप्तुं modulo 16384 कृते एतत् पूर्णाङ्कमूल्यं उपयुज्यते
HASH_SLOT = CRC16 (कुंजी) % 16384
पुनर्प्राप्ति
नोड्स पश्यन्तु
192.168.66.103:8001> cluster nodes
Master नोड् मारयतु
lsof -i:8001
kill -9 pid
नोड् सूचनां अवलोकयन्तु
विन्याससञ्चिकां परिवर्तयन्तु
spring.data.redis.cluster.nodes=192.168.47.100:6381,192.168.47.100:6383,192.168.47.100:6380
सूचना
1. उच्च-उपलब्धतां सुनिश्चित्य Redis-क्लस्टरस्य न्यूनातिन्यूनं 3 नोड्-इत्यस्य आवश्यकता भवति ।
2. भवद्भिः Redis क्लस्टरस्य चालनकाले नोड्स योजयितुं विलोपनं वा परिहरितुं प्रयतितव्यं, यतः एतेन दत्तांशप्रवासः भवितुम् अर्हति तथा च Redis क्लस्टरस्य समग्रप्रदर्शनं प्रभावितं कर्तुं शक्नोति
जावाभाषायां लिखितः कोडः
@SpringBootTest
public class CluseterTest {
@Autowired
private RedisTemplate<String,Object> redisTemplate;
@Test
void string() {
// 保存字符串
redisTemplate.opsForValue().set("itbaizhan","itbaizhan123");
System.out.println(redisTemplate.opsForValue().get("itbaizhan"));
}
}
यदि मम सामग्री भवतः कृते सहायकं भवति तर्हि कृपयालाइक, कमेंट, प्रिय .सृजनं न सुकरं, सर्वेषां समर्थनं एव मां गच्छति