ฉันสงสัยว่าจะปิดการใช้งาน Presistence ใน redis ได้อย่างไร มีการกล่าวถึงความเป็นไปได้ของการทำเช่นนี้นี่คือhttp://redis.io/topics/persistence ฉันหมายถึงมันในความหมายเดียวกับที่อธิบายไว้ตรงนั้น ความช่วยเหลือใด ๆ จะได้รับการชื่นชมเป็นอย่างมาก!
คำตอบ:
หากต้องการปิดใช้งานการคงอยู่ของข้อมูลทั้งหมดใน Redis ให้ทำดังต่อไปนี้ในredis.conf
ไฟล์:
ปิดใช้งาน AOF โดยappendonly
กำหนดคำสั่งการกำหนดค่าเป็นno
(เป็นค่าเริ่มต้น) แบบนี้:
appendonly no
ปิดใช้งานการสแนปช็อต RDB โดยการแสดงความคิดเห็นของsave
คำสั่งการกำหนดค่าทั้งหมด (มี 3 รายการที่กำหนดโดยค่าเริ่มต้น)
#save 900 1
#save 300 10
#save 60 10000
หลังจากการเปลี่ยนแปลงตรวจสอบให้แน่ใจว่าคุณรีสตาร์ท Redis เพื่อใช้งาน
หรือคุณสามารถใช้CONFIG SET
คำสั่งเพื่อใช้การเปลี่ยนแปลงเหล่านี้ในระหว่างรันไทม์ (ตรวจสอบให้แน่ใจว่าคุณได้ดำเนินการCONFIG REWRITE
เพื่อคงการเปลี่ยนแปลงไว้ด้วย)
หมายเหตุ: ขึ้นอยู่กับรุ่น Redis ของคุณมีการปรับแต่งอื่น ๆ ที่ป้องกันไม่ให้ Redis เข้าถึงดิสก์สำหรับงานที่เกี่ยวข้องกับการจำลองแบบ
save
คำสั่ง ฉันเห็นว่าไม่มีการสแนปชอตข้อมูลเป็นระยะ ๆ อีกต่อไป อย่างไรก็ตามฉันยังคงเห็นไฟล์. rdb เขียนลงดิสก์ทุกครั้งที่ฉันปิดเซิร์ฟเวอร์ สามารถสร้างได้หรือไม่อาจเกิดจากกระบวนการเฟลโอเวอร์
systemctl restart redis
redis.conf
ไฟล์อยู่ใน/etc/redis/redis.conf
หากคุณต้องการหลีกเลี่ยงการเล่นกับredis.conf
(สภาพแวดล้อมการพัฒนา / ทดสอบ) คุณสามารถทำได้ผ่านบรรทัดคำสั่งด้วย
redis-server --save "" --appendonly no
(ทดสอบกับเซิร์ฟเวอร์ redis 3.2.6
และ5.0.5
)
--appendonly no
จำเป็น? มันไม่ปิดโดยปริยายใช่ไหม
redis-server --help
อาจให้ข้อมูลเชิงลึก
เนื่องจาก AOF (ภาคผนวก) ถูกปิดใช้งานโดยค่าเริ่มต้นมีเพียงสิ่งเดียวที่ต้องทำเพื่อปิดการใช้งานการคงอยู่โดยไม่ต้องรีสตาร์ทบริการอีกครั้งคือปิดใช้งานการกำหนดค่าบันทึก
สำหรับการปิดใช้งานบนรันไทม์และตรวจสอบการรันคำสั่งด้านล่าง
ตรวจสอบการกำหนดค่าบันทึกปัจจุบัน
pawan@devops:~$ redis-cli config get save
1) "save"
2) "900 1 300 10 60 10000"
การตั้งค่าเดียวกันจะปรากฏในไฟล์ redis.conf เช่นกัน
pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'
save 900 1
save 300 10
save 60 10000
ปิดการใช้งานบันทึกการกำหนดค่า
pawan@devops:~$ redis-cli config set save ""
OK
แก้ไขไฟล์ redis.conf ด้วยการกำหนดค่าบันทึกใหม่เพื่อให้การกำหนดค่ายังคงอยู่ถาวรเมื่อรีสตาร์ทบริการ redis
root@ip-172-16-3-114:~# redis-cli config rewrite
OK
ยืนยันการกำหนดค่าการบันทึกใหม่
pawan@devops:~$ redis-cli config get save
1) "save"
2) ""
ตอนนี้ถ้าคุณจะสแกนไฟล์ redis.conf เพื่อบันทึกการกำหนดค่าจะไม่มีผลลัพธ์ใด ๆ
pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'
pawan@devops:~$
สำหรับการสแน็ปช็อต RDB คุณสามารถปิดใช้งานได้โดยใช้
$ sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf && sudo service redis-server restart
มันจะแสดงความคิดเห็นในบรรทัดบันทึกใน redis.conf และรีสตาร์ท redis-server