रेडिस के साथ दृढ़ता को कैसे निष्क्रिय करें?


91

मैं सोच रहा था कि रेडिस में प्रेसिस्टेंस को कैसे निष्क्रिय किया जाए। यहाँ ऐसा करने की संभावना का उल्लेख है: http://redis.io/topics/persistence । मेरा मतलब ठीक उसी अर्थ में है जैसा कि वहां वर्णित है। किसी भी मदद को बहुत, बहुत सराहा जाएगा!


मुझे यह आश्चर्यजनक लगा, अगर गुस्सा नहीं आता, कि इस पर आधिकारिक वेबसाइट पर कोई निर्देश नहीं है और न ही इस बारे में इंटरनेट पर बहुत सारी जानकारी है (देखें कि stackoverflow.com/questions/19581059/… के पास बहुत अधिक वोट हैं और इससे बेहतर दस्तावेज हैं यह)। कुल मिलाकर यह देखते हुए कि Redis को अक्सर एक गैर-स्थायी डेटाबेस के रूप में उपयोग किया जाता है।
अक्रोनिक्स

जवाबों:


111

Redis में सभी डेटा दृढ़ता को अक्षम करने के लिए redis.confफ़ाइल में निम्न कार्य करें :

  1. (यह डिफ़ॉल्ट मान है) के लिए appendonlyकॉन्फ़िगरेशन निर्देश सेट करके AOF अक्षम करें no। इस तरह:

    appendonly no
    
  2. सभी saveकॉन्फ़िगरेशन निर्देशों की टिप्पणी करके RDB स्नैपशॉट अक्षम करें (डिफ़ॉल्ट रूप से परिभाषित 3 हैं)

    #save 900 1
    #save 300 10
    #save 60 10000
    

परिवर्तन के बाद, सुनिश्चित करें कि आपने उन्हें लागू करने के लिए Redis को पुनरारंभ किया है।

वैकल्पिक रूप से, आप CONFIG SETरनटाइम के दौरान इन परिवर्तनों को लागू करने के लिए कमांड का उपयोग कर सकते हैं (बस सुनिश्चित करें कि आप भी CONFIG REWRITEपरिवर्तनों को जारी रखने के लिए करते हैं)।

नोट: आपके Redis 'संस्करण के आधार पर, अन्य ट्विक्स हैं जो प्रतिकृति से संबंधित कार्यों के लिए Redis को डिस्क तक पहुँचने से रोकते हैं।


1
redis> config set auto-aof-rewrite-
cent

2
मैंने अपने Redis को तीन saveनिर्देशों पर टिप्पणी करके डेटा को डिस्क पर सहेजने के लिए कॉन्फ़िगर नहीं किया है । मैं देख सकता हूं कि यह समय-समय पर डेटा को स्नैप नहीं करता है। हालाँकि, मैं अभी भी एक .rdb फ़ाइल को डिस्क पर लिखा देख रहा हूँ जब भी मैं अपने सर्वर को बंद करता हूँ। यह वैसे भी बनाया जा सकता है, शायद विफलता प्रक्रिया के कारण?
जोलता

1
वास्तव में इसे प्रभावी बनाने के लिए, आप इसे cli के माध्यम से करने के लिए यहाँ सूचीबद्ध कमांड का उपयोग कर सकते हैं: stackoverflow.com/a/34736871/2904315 या आप इस उत्तर में बताए अनुसार redis.conf फ़ाइल को बदल सकते हैं और फिर सेवा को फिर से शुरू करें:systemctl restart redis
Akronix

लिनक्स में, redis.confफाइल स्थित है/etc/redis/redis.conf
अमीन शोजाई

77

यदि आप redis.conf(देव / परीक्षण वातावरण) के साथ खेलने से बचना चाहते हैं , तो आप इसे कमांड लाइन के माध्यम से कर सकते हैं

redis-server --save "" --appendonly no

(रेडिस सर्वर के साथ परीक्षण किया गया ) 3.2.6और5.0.5


1
क्या आप सुनिश्चित हैं कि --appendonly noआवश्यक है? क्या यह डिफ़ॉल्ट रूप से बंद नहीं है?
aleclarson

4
सच हो सकता है। लेकिन यह निश्चित रूप से इसे वहां जोड़ने के लिए चोट नहीं करता है, बस सुरक्षित पक्ष पर रहने के लिए, हम जो चाहते हैं वह सभी प्रकार की दृढ़ता को निष्क्रिय करना है;)
कोस्टिस

हम्म, WSL (उबंटू 16) में विंडोज 10 पर मेरे लिए काम नहीं किया
जेम्स जेंटस

@JamesGentes क्या त्रुटि है। यह मेरे फेडोरा 29 में रेडिस 5.0.3 के साथ काम करता है, अब इसका परीक्षण किया है। शायद आपको विंडोज में एक अलग तरीके से तर्कों को पारित करने की आवश्यकता है? रेडिस संस्करण क्या है? redis-server --helpशायद कुछ अंतर्दृष्टि दे सकता है
कोस्टिस

1
संस्करण 5.0.5 पर भी काम करता है।
abbas

17

के रूप में AOF (appendonly) डिफ़ॉल्ट रूप से अक्षम है, वहाँ केवल एक ही बात बिना हठ अक्षम करने के लिए किया जा रहा है वह यह है कि redis सेवा पुनः आरंभ अक्षम करने के लिए है बचाने विन्यास।

रनटाइम पर इसे अक्षम करने और कमांड के नीचे रन को सत्यापित करने के लिए

वर्तमान सहेजें कॉन्फ़िगरेशन की जाँच करें

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 फ़ाइल को संशोधित करें ताकि कॉन्फ़िगरेशन रेडिस सेवा पुनरारंभ पर स्थायी रहे

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:~$

8

RDB स्नैपशॉट के लिए आप इसका उपयोग करके अक्षम कर सकते हैं

$ sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf && sudo service redis-server restart

यह redis.conf में सेव लाइन्स पर टिप्पणी करेगा और रेडिस-सर्वर को रीस्टार्ट करेगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.