English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。
你可以通过 CONFIG 命令查看或设置配置项。
Redis CONFIG 命令格式如下:
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
redis 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "notice"
使用 * 号获取所有配置项:
redis 127.0.0.1:6379> CONFIG GET * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "unixsocket" 8) "" 9) "logfile" 10) "" 11) "pidfile" 12) "/var/run/redis.pid" 13) "maxmemory" 14) "0" 15) "maxmemory-samples" 16) "3" 17) "timeout" 18) "0" 19) "tcp-keepalive" 20) "0" 21) "auto-aof-rewrite-percentage" 22) "100" 23) "auto-aof-rewrite-min-size" 24) "67108864" 25) "hash-max-ziplist-entries" 26) "512" 27) "hash-max-ziplist-value" 28) "64" 29) "list-max-ziplist-entries" 30) "512" 31) "list-max-ziplist-value" 32) "64" 33) "set-max-intset-entries" 34) "512" 35) "zset-max-ziplist-entries" 36) "128" 37) "zset-max-ziplist-value" 38) "64" 39) "hll-sparse-max-bytes" 40) "3000" 41) "lua-time-limit" 42) "5000" 43) "slowlog-log-slower-than" 44) "10000" 45) "latency-monitor-threshold" 46) "0" 47) "slowlog-max-len" 48) "128" 49) "port" 50) "6379" 51) "tcp-backlog" 52) "511" 53) "databases" 54) "16" 55) "repl-ping-slave-period" 56) "10" 57) "repl-timeout" 58) "60" 59) "repl-backlog-size" 60) "1048576" 61) "repl-backlog-ttl" 62) "3600" 63) "maxclients" 64) "4064" 65) "watchdog-period" 66) "0" 67) "slave-priority" 68) "100" 69) "min-slaves-to-write" 70) "0" 71) "min-slaves-max-lag" 72) "10" 73) "hz" 74) "10" 75) "no-appendfsync-on-rewrite" 76) "no" 77) "slave-serve-stale-data" 78) "yes" 79) "slave-read-only" 80) "yes" 81) "stop-writes-on-bgsave-error" 82) "yes" 83) "daemonize" 84) "no" 85) "rdbcompression" 86) "yes" 87) "rdbchecksum" 88) "yes" 89) "activerehashing" 90) "yes" 91) "repl-disable-tcp-nodelay" 92) "no" 93) "aof-rewrite-incremental-fsync" 94) "yes" 95) "appendonly" 96) "no" 97) "dir" 98) "/home/deepak/Downloads/redis-2.8.13/src" 99) "maxmemory-policy" 100) "volatile-lru" 101) "appendfsync" 102) "everysec" 103) "save" 104) "3600 1 300 100 60 10000" 105) "loglevel" 106) "notice" 107) "client-output-buffer-limit" 108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" 109) "unixsocketperm" 110) "0" 111) "slaveof" 112) "" 113) "notify-keyspace-events" 114) "" 115) "bind" 116) ""
يمكنك تعديل ملف redis.conf أو استخدام CONFIG set استخدام الأمر
CONFIG SET قواعد النحو الأساسية:
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
redis 127.0.0.1:6379> CONFIG SET loglevel "notice" OK redis 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "notice"
شرح إعداد redis.conf كما يلي:
الترقيم | إعداد | شرح |
---|---|---|
1 | daemonize no | Redis لا يعمل بشكل افتراضي كخادم الخلفية، يمكنك تعديل هذا الإعداد، باستخدام yes لتمكين الخادم الخلفي (لا يدعم Windows تكوين الخيط الخلفي) |
2 | pidfile /var/run/redis.pid | عند تشغيل Redis كخادم الخلفية، يقوم Redis بشكل افتراضي بكتابة pid في ملف /var/run/redis.pid، يمكنك تحديد pidfile لتحديد |
3 | منفذ 6379 | تحديد ميناء Redis الذي يسمع عليه، الافتراضي هو 6379، يشرح الكاتب في مدونة له لماذا تم اختيار 6379 كمنفذ افتراضي، لأن 6379 هو الرقم الذي يُمثل MERZ في مفاتيح الهاتف، وMERZ مستوحى من اسم مغنية إيطالية أليسيا ميرز |
4 | bind 127.0.0.1 | عنوان المضيف الم绑定 |
5 | timeout 300 | إغلاق الاتصال بعد فترة راحة العميل لعدد ثوانٍ معين، إذا تم تحديد 0، فإن ذلك يعني إغلاق هذه الميزة |
6 | مستوى السجلات notice | تحديد مستوى تسجيل السجلات، Redis يدعم أربعة مستويات: debug، verbose، notice، warning، الافتراضي هو notice |
7 | ملف السجلات stdout | طريقة تسجيل السجلات، الافتراضية هي إخراج معياري، إذا تم تكوين Redis لتشغيله كخادم الخلفية، وكانت هنا تكوين سجلات إخراج معياري، فإن السجلات ستُرسل إلى /dev/null |
8 | قواعد البيانات 16 | إعداد عدد قواعد البيانات، قاعدة البيانات الافتراضية هي 0، يمكنك استخدام أمر SELECT لتعيين id قاعدة البيانات في الاتصال |
9 | تحفظ <ثواني> <التغييرات> يقدم ملف تكوين Redis الافتراضي ثلاثة شروط: save 900 1 save 300 10 save 60 10000 تعني 1 تغيير في الدقيقة الـ 900 (15 دقيقة)،10 تغييرات في الدقيقة الـ 300 (5 دقائق) و10000 تغيير في الدقيقة الـ 60. | تحديد فترة زمنية في غضونها،كمية تحديثات معينة،سيتم نسخ البيانات إلى ملفات البيانات. |
10 | rdbcompression yes | تحديد ما إذا كان يجب ضغط البيانات عند تخزينها محليًا،القيمة الافتراضية هي yes،يستخدم Redis ضغط LZF،إذا كان من الممكن توفير وقت المعالجة،يمكن إلغاء هذا الخيار،لكن سيؤدي ذلك إلى أن تصبح ملفات قاعدة البيانات ضخمة. |
11 | dbfilename dump.rdb | تحديد اسم ملف قاعدة البيانات المحلية،القيمة الافتراضية هي dump.rdb. |
12 | dir ./ | تحديد مسار مجلد تخزين قاعدة البيانات المحلية. |
13 | slaveof <masterip> <masterport> | إعداد عنوان IP وأيポート لخدمة الماستر عندما تكون هذه الماكينة خدمة slave،سيقوم Redis تلقائيًا بالتنسيق البيانات من الماستر عند بدء التشغيل. |
14 | masterauth <master-password> | عندما يتم تعيين حماية كلمة المرور في خدمة الماستر،سيتم الاتصال بـ master بواسطة كلمة المرور لـ slave. |
15 | requirepass foobared | إعداد كلمة المرور للاتصال بـ Redis،إذا تم تعيين كلمة المرور،فسيحتاج العملاء إلى تقديم كلمة المرور من خلال الأمر AUTH <password> عند الاتصال بـ Redis،القيمة الافتراضية معتمدة. |
16 | maxclients 128 | إعداد عدد أكبر عدد من الاتصالات العملاء في نفس الوقت،القيمة الافتراضية غير محددة،يمكن لـ Redis فتح عدد من الاتصالات العملاء في نفس الوقت يساوي عدد الأوصاف المفتوحة القصوى لل عملية Redis،إذا تم تعيين maxclients 0،فإنه يعني عدم وجود تحديد.عندما يصل عدد الاتصالات العملاء إلى الحد الأقصى،سيغلق Redis الاتصال الجديد ويقوم بإرجاع رسالة خطأ max number of clients reached إلى العملاء. |
17 | maxmemory <bytes> | تحديد الحد الأقصى لمساحة الذاكرة لـ Redis،سيقوم Redis بتشغيل البيانات في الذاكرة عند بدء التشغيل،وعندما يصل إلى الحد الأقصى للذاكرة،سيحاول Redis أولاً حذف المفاتيح المنتهية الصلاحية أو القريبة من انتهاء الصلاحية،وعندما يصل إلى الحد الأقصى المحدد للذاكرة بعد ذلك،سيكون من المستحيل إجراء عمليات الكتابة،لكن يمكن إجراء عمليات القراءة. |
18 | appendonly no | تعیین میکند که آیا در هر بار عملیات بهروزرسانی، لوگ ثبت شود یا خیر، Redis به صورت پیشفرض دادهها را به صورت غیرمستقیم به دیسک مینویسد، اگر این گزینه فعال نشود، ممکن است در صورت قطع برق، دادههای مدت زمانی گم شوند. زیرا خود Redis دادهها را بر اساس شرایط save ذخیره میکند، بنابراین برخی از دادهها ممکن است در مدت زمانی فقط در حافظه وجود داشته باشند. مقدار پیشفرض no است |
19 | appendfilename appendonly.aof | نام فایل لوگ بهروزرسانی را تعیین میکند، مقدار پیشفرض appendonly.aof است |
20 | appendfsync everysec | شرایط بهروزرسانی لوگ را تعیین میکند، 3 گزینه انتخابی وجود دارد:
|
21 | vm-enabled no | تعیین میکند که آیا مکانیزم حافظه مجازی فعال است یا خیر، مقدار پیشفرض no است، به طور خلاصه توضیح میدهم که VM مکانیزمی است که دادهها را به صورت صفحه ذخیره میکند، Redis صفحات کمتر مورد استفاده را به دیسک swap میکند (دادههای کمتر مورد استفاده به معنای دادههای سرد است)، صفحات بیشتری که مورد استفاده قرار میگیرند به صورت خودکار از دیسک به حافظه منتقل میشوند (در مقالههای بعدی به طور دقیقتر به تحلیل مکانیزم VM Redis خواهم پرداخت) |
22 | vm-swap-file /tmp/redis.swap | مسیر فایل حافظه مجازی، مقدار پیشفرض /tmp/redis.swap است، نمیتوان چندین نمونه Redis به اشتراک گذاشت |
23 | vm-max-memory 0 | تمام دادههای بزرگتر از vm-max-memory به حافظه مجازی وارد میشوند، مهم نیست که vm-max-memory چقدر کوچک تنظیم شده باشد، تمام دادههای شاخص به صورت حافظهای ذخیره میشوند (دادههای شاخص Redis به معنای keys است)، یعنی زمانی که vm-max-memory به 0 تنظیم شود، در واقع تمام values در دیسک وجود دارند. مقدار پیشفرض 0 است |
24 | vm-page-size 32 | Redis swap ملفات به تعداد زیادی صفحه تقسیم شدهاند، یک شیء میتواند در چندین صفحه ذخیره شود، اما یک صفحه نمیتواند توسط چندین شیء به اشتراک گذاشته شود، vm-page-size باید بر اساس اندازه دادههای ذخیره شده تنظیم شود، نویسنده پیشنهاد میدهد که اگر تعداد زیادی شیء کوچک ذخیره شود، اندازه صفحه بهترین انتخاب 32 یا 64bytes است؛ اگر شیءهای بزرگتر ذخیره شوند، میتوان از صفحه بزرگتر استفاده کرد، اگر مطمئن نبود، از مقدار پیشفرض استفاده کنید |
25 | vm-pages 134217728 | تحديد عدد الصفوف في ملف الـ |
26 | vm-max-threads 4 | تحديد عدد الأنماط التي يتم فيها الوصول إلى ملف الـ |
27 | glueoutputbuf yes | تحديد ما إذا كان يجب دمج الحزم الصغيرة في حزمة واحدة عند الرد على العميل، يتم دمجها بشكل افتراضي |
28 | hash-max-zipmap-entries 64 hash-max-zipmap-value 512 | تحديد ما إذا كان يجب استخدام خوارزمية الترميز الخاصة عند تجاوز عدد معين أو عند تجاوز عدد الأعمدة القصوى لقيمة معينة |
29 | activerehashing yes | تحديد ما إذا كان يجب تشغيل إعادة الترميز للـ |
30 | include /path/to/local.conf | تحديد ملف تكوين آخر، يمكن استخدام نفس ملف التكوين في عدة نماذج Redis على نفس المضيف، بينما تظل كل نموذج يمتلك تكوينًا خاصًا به |