Pertama, buat folder redis-cluster:
Karena Redis membutuhkan setidaknya 6 node (tiga tuan dan tiga budak), untuk pemahaman yang lebih baik, saya telah membuat dua mesin virtual di sini (192.168.0.109 192.168.0.110), dan membuat tiga folder simpul di bawah /opt/redis-4.0.1/redis-cluster masing-masing dari dua mesin virtual.
192.168.0.109:
192.168.0.110:
Semua 6 node di atas dibuat, dan kemudian file konfigurasi redis.conf dibuat di enam folder ini, dan konfigurasinya seperti yang ditunjukkan pada gambar:
Port 7000Bind 192.168.0.109Daememonize yespidfile /var/run/redis_7000.pidcluster-diabaikan yescluster-config-files_7000.confcluster-node-timeout 10000Appendonly ya
Di antara mereka, Anda perlu memodifikasi file port pidfile config-config ke nomor port simpul yang konsisten, dan berikatan dengan IP untuk akses jarak jauh. Setelah semua modifikasi selesai, Anda dapat memulai layanan Redis:
Mulai perintah:
Perintah di bawah 192.168.0.109: "untuk ((i = 0; i <= 2; i ++)); do /opt/redis-4.0.1/src/redis-server /opt/redis-4.0.1/redis-cluster/700$i/redis.conf; done"
Perintah di bawah 192.168.0.110: "untuk ((i = 3; i <= 5; i ++)); do /opt/redis-4.0.1/src/redis-server /opt/redis-4.0.1/redis-cluster/700$i/redis.conf; Done" Done "
Anda dapat melihat bahwa pencetakan log berhasil dimulai pada mode latar belakang, dan mesin perlu memulai semua node secara bergantian selama dua hari. Setelah node dimulai, Anda dapat membuat layanan cluster:
Jalankan perintah berikut pada salah satu mesin virtual "/opt/redis-4.0.1/src/redis-rib.rb create ---replicas 1 192.168.0.109:7000 192.168.109:7001 192.168.109:7002 192.168.110.1103.103.109:7002 192.168.110.1103.103.103.103.103.10.118.109.118.109.118 192.168.0.110:7005 "
Ingatlah untuk hanya mengeksekusi pada satu mesin. Jika macet di gabungan dan tidak dapat dieksekusi ke bawah, umumnya disebabkan oleh pelabuhan firewall yang dilarang. Ada dua cara untuk menyelesaikannya:
1. Anda tidak hanya perlu membuka 7000 port eksternal, tetapi Anda juga perlu membuka 17000 (karena port bus Redis perlu ditambahkan 1000).
2. Matikan semua firewall secara langsung (karena saya adalah lingkungan saya sendiri di sini, saya mematikan layanan firewall secara langsung).
Log Run Run di atas muncul, dan layanan cluster pada dasarnya berhasil dibangun, dan Anda dapat dengan jelas melihat hubungan master-slave dari setiap node. Setelah lingkungan dibangun, kami akan menggunakannya bersamaan dengan arsitektur SSM yang saya tulis di artikel sebelumnya.
Cache Level 2 MyBaits yang terintegrasi terakhir kali adalah versi yang berdiri sendiri. Karena metode ini tidak mendukung kelompok, kami akan menggunakan jedis-cluster untuk mengintegrasikan kelompok Redis dan Java.
Pertama, tambahkan konfigurasi mesin cluster di file redis.properties, dan tambahkan 6 node ke konfigurasi secara bergantian:
#gugus cluster1.host.port = 192.168.0.109: 7000cluster2.host.port = 192.168.0.109: 7001cluster3.host.port = 192.168.0.109: 7002 cluster4.host.port = 192.168.0.110: 7003cluster5.host.port = 192.168.0.110: 7004Cluster6.host.port = 192.168.0.110: 7005
File konfigurasi Redis juga telah banyak berubah dari yang sebelumnya. Saya mendaftarkannya secara langsung dan dapat disalin dan digunakan secara langsung.
Spring-redis.xml
<beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: p = "http:/xmlschema" xmlns: p = "http:/xmlschema" xmlns: p = "http:/xmlschema" xmlns: p = "http:/xmlschema" xmlns: p = "http: xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: util = "http://www.springframework.org/schema/util" xmlns: AOP = "http:or/schema" xmlns: AOP = "http:ory/schema" xmlns: context = "http://www.springframework.org/schema/context" xmlns: Task = "http://www.springframework.org/schema/task" xsi: schemalocation = "http:/schema http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd http://www.springframework.org/schema/schema http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop: http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd "> <!-Konfigurasi Parameter Dasar Koleksi, Mirip dengan Database Connection Pool-> <> Konteks: Konteks: Konteks Parameter: PARAMETER PARAMETER, MUDAH KONTEKSI DATEKSPASI,> <! <name bean = "genericObjectPoolConfig"> <name properti = "maxwaitmillis" value = "-1" /> <name properti = "maxtotal" value = "1000" /> <name properti = "minidle" value = "8" /> <name properti = "maxidle" value = "100" /< /bean> <! id = "jedaconnectionFactory"> <name properti = "hostname" value = "$ {redis.host}"> </prop Property name = "port" value = "$ {redis.port}"> </properties name = "kata sandi" value = "$ {redis.pass}"> </properties name = "kata sandi" = "$ {redis.pass}"> </properties> Properties = "polig =" $ {redis.pass} "> </Properties> Properties =" Nilai "$" $ " </bean>-> <!-Call Connection Pool Factory Configuration-> <!-<bean id = "redistemplate"> <name properti = "jedisconnectionFactory" ref = "jedisconnectionFactory"> </propert> Jika serializer tidak dikonfigurasi, kemudian gunakan string dengan cerdas saat menyimpan. Jika Anda menggunakan jenis pengguna untuk disimpan, itu akan meminta pengguna kesalahan tidak dapat dilemparkan ke String! Lai Lai <property name="keySerializer"> <bean /> </property> <property name="valueSerializer"> <bean /> </property> </bean> --> <bean id="jedisCluster"> <property name="addressConfig"> <value>classpath:redis.properties</value> </property> <property name="addressKeyPrefix" value="cluster" /> <property name = "timeout" value = "300000" /> <name properti = "maxredirection" value = "6" /> <name properti = "genericObjectPoolConfig" ref = "genericObjectPoolConfig" /> </tean> < /bean>Nonaktifkan semua konfigurasi cache mybatis di integrasi SSM+Redis sebelumnya untuk memulai tes layanan
Pertama, langsung menyuntikkan jediscluster untuk mendapatkan objek cluster.
Untuk kenyamanan, saya menulis ide sederhana di Java untuk menyinkronkan data, dan metode lain juga dapat diimplementasikan, seperti implementasi AOP Spring, menggunakan plug-in pihak ketiga, atau implementasi tingkat basis data.
Setelah startup yang sukses, metode ini disebut berulang kali. Anda dapat melihat bahwa konsol tidak mencetak pernyataan SQL, tetapi secara langsung memperoleh data di cluster Redis. Contoh kluster Redis sederhana di atas telah selesai. Karena keterbatasan waktu, saya belum menulis beberapa jebakan di Linux secara rinci.
Meringkaskan
Di atas adalah metode penggunaan redis cluster dan SSM yang terintegrasi yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!