2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Database gradu transactions
In gradu datorum, res est a paro of operations, that either all fungished or there are none.
Quattuor maioris notae database transactions
Redis transaction
A Redis transactio mandatorum statuta est. Omnia mandata in transactione serialized erunt et mandatorum series uno tempore, sequentiali et exclusivo agetur.
MULTI
Transactio initium facit;EXEC
Praeceptum saltem adhibendum est;
Multi、Exec、discard
transaction initus a *Multi
Cum incipit imperium, initum imperium trudetur in quiddam imperium queue singillatim et non exsecutioni mandariExec
Postea, Redis mandata in praecedente mandato exequetur quiddam queue in ordine.Per processum formationis manipulus, transire potesdiscard
Age cedere turmas.
exemplum
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"
relinquere transaction
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
Omnes simul sedentes
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.
Notice:
Praeceptum positum continet instructiones falsas (nota quod sint errores syntaxis).
Omnis iniustitia possessorem suum habet, omne debitum possessorem habet
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"
Notice:
Nam errores runtime, id est, errores non grammaticales, recta mandata exequentur, et recta mandata errorem reddent.
Overview
Inter inceptis existentibus, 80% societatum plerumque Redis soli servicio utuntur.
adversus difficultates:
- apparatus malfunction. Explicamus ad Redis server. Cum machinae defectus incidit, migrare ad alium cultorem necesse est et ut notitia synchronizata sit.
- Facultas bottleneck. Cum opus est Redis memoriam dilatare, ab 16G ad 64G memoriam, una machina non poterit ei satisfacere. Certe novam machinam 128G emere potes.
Solutio
Ut maiorem capacitatem repono database distributae et accessum magnum sustinebimus, notitias datorum originalis centralised in multiplicibus aliis nodis retis ponemus.
Notice:
Ut hanc problema unius nodi solvam, Redis etiam plura exemplaria notitiarum aliis nodi explicabit ad replicationem ad consequendam promptissimam promptitudinem Redis et superuacua tergum notitiarum ad altam promptitudinem notitiarum et officiorum curandam.
Quid est dominus servus replicatio?
Replicatio magistri servi refert ad notitias describendas ab uno Redis servo aliis Redis servientibus. Illa nodi dicitur dominus, et haec nodi seruus dicitur.
Munus herili replicationis
Configuratione scribere file
Novam redis6379.conf
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb
Novam redis6380.conf
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb
Novam redis6381.conf
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6381.pid
port 6381
dbfilename dump6381.rdb
Satus tres redis servers
./redis-server ../redis6379.conf
./redis-server ../redis6380.conf
./redis-server ../redis6381.conf
Visum ratio processuum
[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
Reprehendo in statum currit trium exercituum
#打印主从复制的相关信息
./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
Instructus servo database sed non cum domino database
Forma Syntaxis:
slaveof <ip> <port>
Exemplum:
6380 et 6381 Actum in .
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
Scribere exercitum et lege data servo
set k1 v1
Magister-servus replicationem in tres gradus dividi potest
Processus describendi fere dividitur in VI processuum
info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
4. mitte in ping imperium
Post nexum utiliter institutum, servus nodi postulationem pingendi mittit ad primam communicationem.
effectus;
- Num nervum retis inter dominum et servum praesto sit deprehendere.
- Deprehendere an dominus nodi mandata accipere currently possunt
ASD.
Si modulus requirepass in nodo domini constitutus est, tessera tesserae requiritur terminabitur, et servus nodi in processu replicationis renouabit.
Synchronise datasets.
Post replicationem cum servo communicat ordinarie nexum, cum primum constituitur replicatio, dominus nodi mittet omnia data quae tenet servo nodi.
Dominus-servus synchronisation militarium
Cum dominus et servus inter se coniunguntur, plena synchronisatio perficitur; Utique, si opus sit, servus potest quovis tempore plenam synchronisationem instituere. Instrumentum redis est, quodcumque incremental synchronisation primo tentabitur, et si male pugnaverit, machina servilis ad plenam synchronizationem faciendam requiretur.
Exempli gratia
nisi cache
set name jjy
In memoria imperium est
$3 r n
set r n
$4 r n
name r n
$5 r n
jjy r n
Offset | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
---|---|---|---|---|---|---|---|---|---|
byte valorem | $ | 3 | r* | n | $ | 4 | n | a | m |
7. Exscriptum est praeceptum continue.
Cum dominus nodi hodiernam notam nodi servo conformat, replicatio processus instaurationis perficitur. Deinceps dominus nodi continuo scribet mandata servo nodo mittet ut data constantia domino servo curet.
Incommoda Redis servi replicationis
Cum Magister hospes descenderit, necesse est switch ut manually solvere.
Patefacio quaestiones:
Cum dominus nodi descendit et in scribendo officium adhiberi non potest, necesse est ut manually mutes, dominum nodi reselectet, et relationem servi manualem constituat.
Dominus-servus commutatione technology
Cum dominus servo descenderit, servus manualiter ad dominum servo debet, quod manuum interventus postulat, tempus consumens et labor intensivus est, et etiam causa servitii per spatium temporis perpendendum est.Quod non est aditus commendatus, saepius exa-Vigiliarum modus。
Vigil Overview
Vigil modus est modus specialis. Principium est, quod monitores vigiles multiplices instantiae Redis cursus mittendis mandatis et exspectantibus Redis servo respondeant.
Vigilum munus
Novam custodiam excubiae-26379.conf lima
#端口
port 26379
#守护进程运行
daemonize yes
#日志文件
logfile "26379.log"
sentinel monitor mymaster localhost 6379 2
modulus;
vigilator monitor mymaster 192.168.92.128 6379 2 Sensus configurationis est: monitores nodi vigilis magister nodi 192.168.92.128:6379. Nodis domini nomen est mymaster dominus nodi: saltem 2 requiruntur. Solummodo cum duo nodi vigiles concordant, defectus nodi magistri determinari potest et defectivus effectus.
Novam excubiae-26380.conf file
#端口
port 26380
#守护进程运行
daemonize yes
#日志文件
logfile "26380.log"
sentinel monitor mymaster localhost 6379 2
Novam excubiae-26381.conf file
#端口
port 26381
#守护进程运行
daemonize yes
#日志文件
logfile "26381.log"
sentinel monitor mymaster localhost 6379 2
Satus vigilia nodi
redis-sentinel sentinel-26379.conf
View vigilia nodi status
[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
magna tempus
Animadverte:
- Excubiae (vigiliae 1)-----> Initiate info domino (domini) et servo, et plenam informationem obtine.
- Excubiae (vigilis 2)-----> Initiate info domino (domini), cognosces indicium vigilis existentis (vigilii 1), et coniunge servo (servo).
- vigiliae (vigil 2)-----> Initiare subscribere vigili (excubiae 1).
Notification scaena
Vigil continuus notificationes ad dominum mittit et servum ad nuntios colligendos.
failover tempus
In tempus notificationis, si notificatio missae a vigili responsum a domino non acceperit, notabit dominum ut SRI_S_DOWN et mittat statum domini ad unumquemque vigilem Non credo. Etiam eum reprehendo et mittet
Hic venit quaestio:
In hoc tempore dominus reponendum est.
Quomodo suffragium
Via:
Quicumque vigilias electionis accipio, primum eam decernet.
Aliquot casibus eliminate:
Overview
Facultates vigilis vigili demonstrat et facultates deficientes automatice cum dominus nodi deficit.
Demonstrare failover
Utere occiditis mandatum ut dominus occidere nodi
ps aux |grep redis
kill -9 pid
Visum vigiliae nodi informationes
Si statim uti mandato vigilis nodi vigilis info ut videas.
[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
Notice:
Invenies dominum nodi in non mutatum esse, quia vigiliae tempus aliquod accipiet ut defectum domini nodi deprehendat et transferat.
Sileo nodi (LXIII)CCCLXXIX
[root@localhost src]# ./redis-cli info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:down
Configurationis files voluntas revocetur
In tempore deficienti, schematis figurarum vigilis et nodis magistri rescribetur.
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
finitione
Redis habet tres botri modos
Incommoda Variegati Modus
defectus:
Botrus modus Overview
Redis botrus est usus distributus botrus ex pluribus nodi sodaliciis magistri compositi. Replicationem habet, promptitudinem et lineamenta sharding.
commoda Redis botri
Redis botrus constructionis requirit saltem 3 dominos nodos. Hic construimus dominos 3 , singulas cum servo nodo, ad summam 6 nodis redis;
Botrus construction
6 Nodos varios redis crea cum numeris portubus 6379, 6380, 6381, 6382, 6383, et respective 6384.
Notice: Documenta dump.rdb et appendonly.aof ante exemplaria deleri debent.
1. Novam configuratione file
Crea redis6379.config, redis6380.config, redis6381.config, redis6382.config, redis6383.config, redis6384.config, numerum portum in lima configuration ut correspondeat tabellae numero.
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
modulus:
- botri-config-file: Cluster perseverantia configurationis fasciculi, qui continet statum aliorum nodi, variabilium permanentium, etc., automatice generabuntur in dir presul supra figuratum. Uterque nodi conservabit fasciculum configurationis botri in operatione; quandocunque glomerus informationes mutationes (ut nodos addens vel tollens), omnes nodi in botro renovabunt notitias novissimas ad limam configurationis; configurationem fasciculi ad informationem botrum obtinendam, et botrum facile reiungere potes. Botrus fasciculus configurationis ab Redis conservatur nec manuali modificatione indiget.
- botrus-enabled: botri enable
Create folder
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/
Satus sex lymphaticorum
[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
Utrumque nodi incipit feliciter
[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
Configurare botrum portassent
Mandatum forma: --cluster-replicas 1 significat creando nodi servum pro quolibet domino
Notice: IP hic verus IP machinae est ubi singula nodi sita sunt.
[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
Quin botri
Coniungere ad clientem
./redis-cli -h 192.168.47.100 -p 6379 -c
modulus;
h: exercitum oratio
-p: portum numerus
c: modus indicat botrum portassent
Data scripturae test
[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>
Redis Botrus Omnes notitiae in 16384 foramina divisa sunt, et unaquaeque nodi pars foramina responsabilis est. Indicium socors in unaquaque nodo reponitur. Solus dominus nodi assignabuntur foramina, et servus nodi foramina non assignabuntur.
Socors algorithmus positusk1 = 127001
Defalta, Cluster algorithm adhibebit ad valorem clavem habendum ad valorem integrum obtinendum, et tunc utetur hoc valore integer ad modulum 16384 ad obtinendum slot specificum.
HASH_SLOT = CRC16(claves) % 16384
Recuperatio
Visum lymphaticorum
192.168.66.103:8001> cluster nodes
Magister occidere nodi
lsof -i:8001
kill -9 pid
Nota nodi notitia
Configuratione file mutare
spring.data.redis.cluster.nodes=192.168.47.100:6381,192.168.47.100:6383,192.168.47.100:6380
Notice
1. In Redis botrus requirit saltem 3 nodos ut alta disponibilitate curent.
2. Vitare conetur addendo vel delendo nodos dum currit Redis botrus, quia haec migratio notitiae causare potest et sic ad altiorem observantiam redis botrum afficiunt.
Codex scriptus in Java
@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"));
}
}
Si contentus mea tibi prosit, quaesoSicut, comment, ventus .Creare non est facile, auxilium omnium est quod me tenet