redis.conf翻譯與配置(五)【redis6.0.6】(redis. conf

      網(wǎng)友投稿 925 2025-04-01

      學(xué)習(xí)Redis的途中,碰上了Redis.conf,突發(fā)奇想,想著來(lái)進(jìn)行一波翻譯輸出。


      源碼之前,了無(wú)秘密。

      文章目錄

      redis集群

      原文

      譯文

      集群 DOCKER/NAT 支持

      原文

      譯文

      慢查詢?nèi)罩?/p>

      原文

      譯文

      延遲監(jiān)控

      原文

      譯文

      訂閱發(fā)布

      原文

      譯文

      redis集群

      原文

      ################################ REDIS CLUSTER ############################### # Normal Redis instances can't be part of a Redis Cluster; only nodes that are # started as cluster nodes can. In order to start a Redis instance as a # cluster node enable the cluster support uncommenting the following: # # cluster-enabled yes # Every cluster node has a cluster configuration file. This file is not # intended to be edited by hand. It is created and updated by Redis nodes. # Every Redis Cluster node requires a different cluster configuration file. # Make sure that instances running in the same system do not have # overlapping cluster configuration file names. # # cluster-config-file nodes-6379.conf # Cluster node timeout is the amount of milliseconds a node must be unreachable # for it to be considered in failure state. # Most other internal time limits are multiple of the node timeout. # # cluster-node-timeout 15000 # A replica of a failing master will avoid to start a failover if its data # looks too old. # # There is no simple way for a replica to actually have an exact measure of # its "data age", so the following two checks are performed: # # 1) If there are multiple replicas able to failover, they exchange messages # in order to try to give an advantage to the replica with the best # replication offset (more data from the master processed). # Replicas will try to get their rank by offset, and apply to the start # of the failover a delay proportional to their rank. # # 2) Every single replica computes the time of the last interaction with # its master. This can be the last ping or command received (if the master # is still in the "connected" state), or the time that elapsed since the # disconnection with the master (if the replication link is currently down). # If the last interaction is too old, the replica will not try to failover # at all. # # The point "2" can be tuned by user. Specifically a replica will not perform # the failover if, since the last interaction with the master, the time # elapsed is greater than: # # (node-timeout * replica-validity-factor) + repl-ping-replica-period # # So for example if node-timeout is 30 seconds, and the replica-validity-factor # is 10, and assuming a default repl-ping-replica-period of 10 seconds, the # replica will not try to failover if it was not able to talk with the master # for longer than 310 seconds. # # A large replica-validity-factor may allow replicas with too old data to failover # a master, while a too small value may prevent the cluster from being able to # elect a replica at all. # # For maximum availability, it is possible to set the replica-validity-factor # to a value of 0, which means, that replicas will always try to failover the # master regardless of the last time they interacted with the master. # (However they'll always try to apply a delay proportional to their # offset rank). # # Zero is the only value able to guarantee that when all the partitions heal # the cluster will always be able to continue. # # cluster-replica-validity-factor 10 # Cluster replicas are able to migrate to orphaned masters, that are masters # that are left without working replicas. This improves the cluster ability # to resist to failures as otherwise an orphaned master can't be failed over # in case of failure if it has no working replicas. # # Replicas migrate to orphaned masters only if there are still at least a # given number of other working replicas for their old master. This number # is the "migration barrier". A migration barrier of 1 means that a replica # will migrate only if there is at least 1 other working replica for its master # and so forth. It usually reflects the number of replicas you want for every # master in your cluster. # # Default is 1 (replicas migrate only if their masters remain with at least # one replica). To disable migration just set it to a very large value. # A value of 0 can be set but is useful only for debugging and dangerous # in production. # # cluster-migration-barrier 1 # By default Redis Cluster nodes stop accepting queries if they detect there # is at least an hash slot uncovered (no available node is serving it). # This way if the cluster is partially down (for example a range of hash slots # are no longer covered) all the cluster becomes, eventually, unavailable. # It automatically returns available as soon as all the slots are covered again. # # However sometimes you want the subset of the cluster which is working, # to continue to accept queries for the part of the key space that is still # covered. In order to do so, just set the cluster-require-full-coverage # option to no. # # cluster-require-full-coverage yes # This option, when set to yes, prevents replicas from trying to failover its # master during master failures. However the master can still perform a # manual failover, if forced to do so. # # This is useful in different scenarios, especially in the case of multiple # data center operations, where we want one side to never be promoted if not # in the case of a total DC failure. # # cluster-replica-no-failover no # This option, when set to yes, allows nodes to serve read traffic while the # the cluster is in a down state, as long as it believes it owns the slots. # # This is useful for two cases. The first case is for when an application # doesn't require consistency of data during node failures or network partitions. # One example of this is a cache, where as long as the node has the data it # should be able to serve it. # # The second use case is for configurations that don't meet the recommended # three shards but want to enable cluster mode and scale later. A # master outage in a 1 or 2 shard configuration causes a read/write outage to the # entire cluster without this option set, with it set there is only a write outage. # Without a quorum of masters, slot ownership will not change automatically. # # cluster-allow-reads-when-down no # In order to setup your cluster make sure to read the documentation # available at http://redis.io web site.

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      116

      117

      118

      119

      120

      121

      122

      123

      124

      125

      126

      127

      普通的Redis實(shí)例不能成為Redis集群的一部分,只有作為集群節(jié)點(diǎn)啟動(dòng)的節(jié)點(diǎn)可以。為了啟動(dòng)一個(gè)有集群支持的Redis實(shí)例,可以把下面這行取消注釋:

      # cluster-enabled yes

      1

      每個(gè)集群節(jié)點(diǎn)都有一個(gè)集群配置文件。此文件不用于手工編輯。它是由Redis節(jié)點(diǎn)創(chuàng)建和更新的。

      每個(gè)集群節(jié)點(diǎn)的配置文件都不一樣。

      確保同一系統(tǒng)下的任意兩集群節(jié)點(diǎn)的集群配置文件不重名。

      如:

      # cluster-config-file nodes-6379.conf

      1

      群集節(jié)點(diǎn)超時(shí)是指一個(gè)節(jié)點(diǎn)無(wú)法被訪問(wèn)的毫秒數(shù),從而將其視為處于故障狀態(tài)。大多數(shù)其他內(nèi)部時(shí)間限制是節(jié)點(diǎn)超時(shí)的多倍。

      # cluster-node-timeout 15000

      1

      如果發(fā)生故障的主機(jī)的數(shù)據(jù)看起來(lái)太舊,它的副本將避免啟動(dòng)故障轉(zhuǎn)移。

      沒(méi)有一種簡(jiǎn)單的方法可以讓副本真正精確地測(cè)量它的“數(shù)據(jù)年齡”,因此執(zhí)行以下兩個(gè)檢查:

      1)如果有多個(gè)副本可以進(jìn)行故障轉(zhuǎn)移,它們會(huì)交換消息,使副本具有最好的復(fù)制偏移(更多來(lái)自主處理的數(shù)據(jù))。副本將嘗試通過(guò)偏移量獲得它們的級(jí)別,并對(duì)故障轉(zhuǎn)移的啟動(dòng)應(yīng)用與它們的級(jí)別成比例的延遲。 2)每個(gè)副本計(jì)算最后一次與主機(jī)交互的時(shí)間。這可以是接收到的最后一個(gè)ping或命令(如果主服務(wù)器仍然處于“connected”狀態(tài)),或者是自與主服務(wù)器斷開(kāi)連接以來(lái)所經(jīng)過(guò)的時(shí)間(如果復(fù)制鏈接當(dāng)前處于關(guān)閉狀態(tài))。 如果最后一個(gè)交互太久遠(yuǎn),副本根本不會(huì)嘗試故障轉(zhuǎn)移。

      1

      2

      3

      4

      第二點(diǎn)可以由使用者調(diào)優(yōu)。具體來(lái)說(shuō),如果自上次與主服務(wù)器交互以來(lái),經(jīng)過(guò)的時(shí)間大于:# (node-timeout * replica-validity-factor) + repl-ping-replica-period,

      因此,例如,如果node-timeout為30秒,復(fù)制有效性因子(replica-validity-factor)為10,并假設(shè)默認(rèn)的repl-ping-replica-period為10秒,那么如果副本無(wú)法與主服務(wù)器對(duì)話的時(shí)間超過(guò)310秒,則不會(huì)嘗試進(jìn)行故障轉(zhuǎn)移。

      較大的副本有效性因子可能會(huì)使數(shù)據(jù)太舊的副本無(wú)法轉(zhuǎn)移主服務(wù)器,而太小的值可能會(huì)使集群根本無(wú)法選擇副本。

      為了獲得最大的可用性,可以將副本有效性因子設(shè)置為0,這意味著副本將始終嘗試對(duì)主服務(wù)器進(jìn)行故障轉(zhuǎn)移,而不管它們上一次與主服務(wù)器交互是什么時(shí)候。(然而,他們總是試圖應(yīng)用一個(gè)與他們的偏移秩成比例的延遲)。

      0是唯一能夠保證所有分區(qū)恢復(fù)后集群始終能夠繼續(xù)運(yùn)行的值。

      集群副本能夠遷移到孤立的主服務(wù)器,即沒(méi)有工作副本的主服務(wù)器。這提高了集群抵抗故障的能力,否則,在出現(xiàn)故障時(shí),如果孤立的主服務(wù)器沒(méi)有工作副本,則無(wú)法進(jìn)行故障轉(zhuǎn)移。

      只有當(dāng)它們的舊主服務(wù)器仍然至少有給定數(shù)量的其他工作副本時(shí),副本才會(huì)遷移到孤立的主服務(wù)器。這個(gè)數(shù)字就是“遷移障礙”。遷移障礙為1意味著一個(gè)副本只有在其主副本至少有1個(gè)工作副本時(shí)才會(huì)遷移,以此類推。它通常反映集群中每個(gè)主服務(wù)器所需的副本數(shù)量。

      默認(rèn)值是1(只有當(dāng)它們的主副本保留至少一個(gè)副本時(shí),副本才會(huì)遷移)。要禁用遷移,只需將其設(shè)置為一個(gè)非常大的值。

      可以設(shè)置值0,但這只對(duì)調(diào)試有用,在生產(chǎn)中會(huì)有危險(xiǎn)。

      默認(rèn)情況下,如果Redis集群節(jié)點(diǎn)檢測(cè)到至少有一個(gè)散列槽未覆蓋(沒(méi)有可用節(jié)點(diǎn)為其服務(wù)),則停止接受查詢。

      這樣,如果集群部分關(guān)閉(例如不再覆蓋一段散列槽),那么最終所有集群都將不可用。當(dāng)所有插槽再次被覆蓋時(shí),它自動(dòng)返回可用。

      但是,有時(shí)您希望正在工作的集群子集繼續(xù)接受仍然覆蓋的鍵空間部分的查詢。為此,只需將cluster-require-full-coverage選項(xiàng)設(shè)置為no。

      # cluster-require-full-coverage yes

      1

      當(dāng)將此選項(xiàng)設(shè)置為yes時(shí),可防止副本在主服務(wù)器出現(xiàn)故障時(shí)試圖轉(zhuǎn)移其主服務(wù)器。但是,如果被迫,主服務(wù)器仍然可以執(zhí)行手動(dòng)故障轉(zhuǎn)移。

      這在不同的場(chǎng)景中非常有用,特別是在多個(gè)數(shù)據(jù)中心操作的情況下,如果在完全DC故障的情況下,我們希望其中一側(cè)永遠(yuǎn)不會(huì)得到提升。

      # cluster-replica-no-failover no

      1

      當(dāng)將此選項(xiàng)設(shè)置為yes時(shí),只要集群認(rèn)為自己擁有這些槽,就允許節(jié)點(diǎn)在集群處于down狀態(tài)時(shí)提供讀流量。

      這在兩種情況下有用。

      第一種情況是應(yīng)用程序在節(jié)點(diǎn)故障或網(wǎng)絡(luò)分區(qū)期間不需要數(shù)據(jù)一致性。 其中一個(gè)例子就是緩存,只要節(jié)點(diǎn)擁有數(shù)據(jù),它就應(yīng)該能夠提供數(shù)據(jù)。 第二個(gè)用例用于不滿足推薦的三個(gè)切分,但希望啟用集群模式并稍后擴(kuò)展的配置。1或2分片配置中的主中斷會(huì)導(dǎo)致整個(gè)集群在沒(méi)有設(shè)置此選項(xiàng)的情況下出現(xiàn)讀/寫中斷,設(shè)置此選項(xiàng)后,只有寫中斷。沒(méi)有主控的法定人數(shù),插槽所有權(quán)將不會(huì)自動(dòng)更改。

      1

      2

      3

      4

      # cluster-allow-reads-when-down no

      1

      為了設(shè)置您的集群,請(qǐng)閱讀http://redis.io網(wǎng)站提供的文檔。

      集群 DOCKER/NAT 支持

      原文

      ########################## CLUSTER DOCKER/NAT support ######################## # In certain deployments, Redis Cluster nodes address discovery fails, because # addresses are NAT-ted or because ports are forwarded (the typical case is # Docker and other containers). # # In order to make Redis Cluster working in such environments, a static # configuration where each node knows its public address is needed. The # following two options are used for this scope, and are: # # * cluster-announce-ip # * cluster-announce-port # * cluster-announce-bus-port # # Each instruct the node about its address, client port, and cluster message # bus port. The information is then published in the header of the bus packets # so that other nodes will be able to correctly map the address of the node # publishing the information. # # If the above options are not used, the normal Redis Cluster auto-detection # will be used instead. # # Note that when remapped, the bus port may not be at the fixed offset of # clients port + 10000, so you can specify any port and bus-port depending # on how they get remapped. If the bus-port is not set, a fixed offset of # 10000 will be used as usually. # # Example: # # cluster-announce-ip 10.1.1.5 # cluster-announce-port 6379 # cluster-announce-bus-port 6380

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      在某些部署中,Redis集群節(jié)點(diǎn)地址發(fā)現(xiàn)失敗,原因是地址是NAT的,或者是端口被轉(zhuǎn)發(fā)(典型的情況是Docker和其他容器)。

      為了讓Redis集群在這樣的環(huán)境下工作,需要一個(gè)靜態(tài)配置,每個(gè)節(jié)點(diǎn)都知道自己的公共地址。以下兩個(gè)選項(xiàng)用于此范圍,它們是:

      # * cluster-announce-ip # * cluster-announce-port # * cluster-announce-bus-port

      1

      2

      3

      每個(gè)節(jié)點(diǎn)指示其地址、客戶端端口和集群消息總線端口。然后在總線包的頭中發(fā)布信息,以便其他節(jié)點(diǎn)能夠正確地映射發(fā)布信息的節(jié)點(diǎn)的地址。

      如果不使用以上選項(xiàng),將使用正常的Redis集群自動(dòng)檢測(cè)代替。

      請(qǐng)注意,在重新映射時(shí),總線端口可能不在客戶端端口+ 10000的固定偏移量處,因此您可以根據(jù)重新映射的方式指定任何端口和總線端口。如果總線端口沒(méi)有設(shè)置,則通常使用10000的固定偏移量。

      例如

      # Example: # # cluster-announce-ip 10.1.1.5 # cluster-announce-port 6379 # cluster-announce-bus-port 6380

      1

      2

      3

      4

      5

      慢查詢?nèi)罩?/p>

      原文

      ################################## SLOW LOG ################################### # The Redis Slow Log is a system to log queries that exceeded a specified # execution time. The execution time does not include the I/O operations # like talking with the client, sending the reply and so forth, # but just the time needed to actually execute the command (this is the only # stage of command execution where the thread is blocked and can not serve # other requests in the meantime). # # You can configure the slow log with two parameters: one tells Redis # what is the execution time, in microseconds, to exceed in order for the # command to get logged, and the other parameter is the length of the # slow log. When a new command is logged the oldest one is removed from the # queue of logged commands. # The following time is expressed in microseconds, so 1000000 is equivalent # to one second. Note that a negative number disables the slow log, while # a value of zero forces the logging of every command. slowlog-log-slower-than 10000 # There is no limit to this length. Just be aware that it will consume memory. # You can reclaim memory used by the slow log with SLOWLOG RESET. slowlog-max-len 128

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      Redis慢日志是一個(gè)記錄超過(guò)指定執(zhí)行時(shí)間的查詢的系統(tǒng)。執(zhí)行時(shí)間不包括I / O操作,比如與客戶端,發(fā)送應(yīng)答等等,但就實(shí)際執(zhí)行命令所需的時(shí)間(這是命令執(zhí)行的唯一階段,線程被阻塞,不能同時(shí)為其他請(qǐng)求服務(wù))。

      你可以用兩個(gè)參數(shù)來(lái)配置慢日志:一個(gè)參數(shù)告訴Redis執(zhí)行時(shí)間(以微秒為單位),以便命令能夠被記錄下來(lái),另一個(gè)參數(shù)是慢日志的長(zhǎng)度。記錄新命令時(shí),將從已記錄的命令隊(duì)列中刪除最老的命令。

      下面的時(shí)間用微秒表示,所以1000000等于一秒。注意,負(fù)數(shù)禁用慢日志,而值為0則強(qiáng)制記錄每個(gè)命令。

      slowlog-log-slower-than 10000

      1

      這個(gè)長(zhǎng)度沒(méi)有限制。只是要知道它會(huì)消耗內(nèi)存。使用SLOWLOG復(fù)位,您可以回收慢日志使用的內(nèi)存。

      slowlog-max-len 128

      1

      延遲監(jiān)控

      原文

      ################################ LATENCY MONITOR ############################## # The Redis latency monitoring subsystem samples different operations # at runtime in order to collect data related to possible sources of # latency of a Redis instance. # # Via the LATENCY command this information is available to the user that can # print graphs and obtain reports. # # The system only logs operations that were performed in a time equal or # greater than the amount of milliseconds specified via the # latency-monitor-threshold configuration directive. When its value is set # to zero, the latency monitor is turned off. # # By default latency monitoring is disabled since it is mostly not needed # if you don't have latency issues, and collecting data has a performance # impact, that while very small, can be measured under big load. Latency # monitoring can easily be enabled at runtime using the command # "CONFIG SET latency-monitor-threshold " if needed. latency-monitor-threshold 0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      Redis延遲監(jiān)控子系統(tǒng)在運(yùn)行時(shí)對(duì)不同的操作進(jìn)行采樣,以便收集Redis實(shí)例延遲可能來(lái)源的相關(guān)數(shù)據(jù)。

      通過(guò)延遲命令,用戶可以通過(guò)打印圖形和獲取報(bào)告獲得這些信息。

      系統(tǒng)只記錄在時(shí)間等于或大于通過(guò)延遲監(jiān)視器閾值配置指令指定的毫秒數(shù)的時(shí)間內(nèi)執(zhí)行的操作。當(dāng)它的值設(shè)置為0時(shí),將關(guān)閉延遲監(jiān)視器。

      默認(rèn)情況下,延遲監(jiān)視是禁用的,因?yàn)槿绻麤](méi)有延遲問(wèn)題,那么通常不需要進(jìn)行延遲監(jiān)視,而且收集數(shù)據(jù)會(huì)對(duì)性能產(chǎn)生影響,盡管影響很小,但在大負(fù)載下可以度量出來(lái)。

      如果需要,可以在運(yùn)行時(shí)使用命令“CONFIG SET delay -monitor-threshold ”輕松啟用延遲監(jiān)視。

      訂閱發(fā)布

      原文

      ############################# EVENT NOTIFICATION ############################## # Redis can notify Pub/Sub clients about events happening in the key space. # This feature is documented at http://redis.io/topics/notifications # # For instance if keyspace events notification is enabled, and a client # performs a DEL operation on key "foo" stored in the Database 0, two # messages will be published via Pub/Sub: # # PUBLISH __keyspace@0__:foo del # PUBLISH __keyevent@0__:del foo # # It is possible to select the events that Redis will notify among a set # of classes. Every class is identified by a single character: # # K Keyspace events, published with __keyspace@__ prefix. # E Keyevent events, published with __keyevent@__ prefix. # g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... # $ String commands # l List commands # s Set commands # h Hash commands # z Sorted set commands # x Expired events (events generated every time a key expires) # e Evicted events (events generated when a key is evicted for maxmemory) # t Stream commands # m Key-miss events (Note: It is not included in the 'A' class) # A Alias for g$lshzxet, so that the "AKE" string means all the events # (Except key-miss events which are excluded from 'A' due to their # unique nature). # # The "notify-keyspace-events" takes as argument a string that is composed # of zero or multiple characters. The empty string means that notifications # are disabled. # # Example: to enable list and generic events, from the point of view of the # event name, use: # # notify-keyspace-events Elg # # Example 2: to get the stream of the expired keys subscribing to channel # name __keyevent@0__:expired use: # # notify-keyspace-events Ex # # By default all notifications are disabled because most users don't need # this feature and the feature has some overhead. Note that if you don't # specify at least one of K or E, no events will be delivered. notify-keyspace-events ""

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      redis.conf翻譯與配置(五)【redis6.0.6】(redis. conf)

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      Redis可以通知Pub/Sub客戶端在key space發(fā)生的事件,該特性在http://redis.io/topics/notifications上可以找到。

      例如,如果啟用了keyspace事件通知,客戶端對(duì)數(shù)據(jù)庫(kù)0中存儲(chǔ)的key "foo"執(zhí)行DEL操作,將通過(guò)Pub/Sub發(fā)布兩條消息:

      # PUBLISH __keyspace@0__:foo del # PUBLISH __keyevent@0__:del foo

      1

      2

      可以在一組類中選擇Redis將通知的事件。每個(gè)類都由一個(gè)字符標(biāo)識(shí):

      # K Keyspace 命令, 以__keystpace@__ 前綴發(fā)布. # E Keyevent 命令, 以__keyevent@__ 前綴發(fā)布. # g Generic 命令(non-type specific) like DEL, EXPIRE, RENAME, ... # $ String 命令 # l List 命令 # s Set 命令 # h Hash 命令 # z set排序命令 # x 過(guò)期事件(鍵每次到期時(shí)生成的事件) # e 驅(qū)逐事件(從maxmemory中驅(qū)逐鍵時(shí)生成的事件) # t 流命令 # m Key-miss 事件(Note: It is not included in the 'A' class) # A g$lshzxet的別名,因此“AKE”字符串表示所有的事件(除了由于其獨(dú)特性而被排除在“A”之外的鍵錯(cuò)過(guò)事件)。

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      "notify-keyspace-events"接受一個(gè)由0個(gè)或多個(gè)字符組成的字符串作為參數(shù)。空字符串表示禁用通知。

      示例:從事件名稱的角度來(lái)看,要啟用列表和通用事件,請(qǐng)使用:

      # notify-keyspace-events Elg

      1

      示例2:獲取訂閱通道名稱的過(guò)期密鑰流__keyevent@0__:過(guò)期使用:

      # notify-keyspace-events Ex

      1

      默認(rèn)情況下,所有通知都被禁用,因?yàn)榇蠖鄶?shù)用戶不需要此功能,而且該功能有一些開(kāi)銷。請(qǐng)注意,如果不指定K或E中的任何一個(gè),則不會(huì)傳遞任何事件。

      Redis 機(jī)器翻譯

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Excel2010為正數(shù)和零添加一個(gè)與右括號(hào)相同寬度的空格以對(duì)齊數(shù)字
      下一篇:Hyperledger Fabric菜鳥(niǎo)進(jìn)階攻略》(Hyperledger fabric是什么)
      相關(guān)文章
      2048亚洲精品国产| 国产亚洲精品第一综合| 中文字幕在线亚洲精品| 另类图片亚洲校园小说区| 亚洲欧美国产国产综合一区| 亚洲中文无码永久免费| 亚洲成年人免费网站| 亚洲电影唐人社一区二区| 亚洲麻豆精品果冻传媒| 亚洲视频一区在线播放| 亚洲乱码卡三乱码新区| 亚洲乱人伦精品图片| 亚洲人成伊人成综合网久久| 91嫩草亚洲精品| 亚洲mv国产精品mv日本mv| 亚洲国产精品无码久久久| 亚洲国产美女精品久久| 亚洲13又紧又嫩又水多| 亚洲熟女乱色一区二区三区| 亚洲国产午夜精品理论片在线播放| 亚洲日本VA午夜在线影院| 亚洲AV无码专区亚洲AV桃| 国产亚洲成在线播放va| 亚洲欧洲久久久精品| 久久亚洲国产成人精品无码区| 91麻豆精品国产自产在线观看亚洲| 亚洲人成色777777在线观看| 亚洲av无码片在线播放| 亚洲综合成人网在线观看| 亚洲人成网站日本片| 亚洲欧洲国产综合AV无码久久| WWW国产亚洲精品久久麻豆| 亚洲国产aⅴ综合网| 在线观看午夜亚洲一区| 久久亚洲国产精品五月天| 亚洲综合小说久久另类区| 久久亚洲精品国产亚洲老地址| 亚洲AV无码专区国产乱码不卡| 亚洲v国产v天堂a无码久久| 亚洲乱码中文字幕久久孕妇黑人| 亚洲成年轻人电影网站www|