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 128 129 130 131 132
|
Implemented commands
====================
This will describe all changes that RedisCluster have done to make a command to work in a cluster environment.
If a command is not listed here then the default implementation from `Redis` in the `redis-py` library is used.
Fanout Commands
---------------
The following commands will send the same request to all nodes in the cluster. Results is returned as a dict with k,v pair (NodeID, Result).
- bgrewriteaof
- bgsave
- client_getname
- client_kill
- client_list
- client_setname
- config_get
- config_resetstat
- config_rewrite
- config_set
- dbsize
- echo
- info
- lastsave
- ping
- save
- slowlog_get
- slowlog_len
- slowlog_reset
- time
The pubsub commands are sent to all nodes, and the resulting replies are merged together. They have an optional keyword argument `aggregate` which when set to `False` will return a dict with k,v pair (NodeID, Result) instead of the merged result.
- pubsub_channels
- pubsub_numsub
- pubsub_numpat
This command will send the same request to all nodes in the cluster in sequence. Results is appended to a unified list.
- keys
The following commands will only be send to the master nodes in the cluster. Results is returned as a dict with k,v pair (NodeID, Command-Result).
- flushall
- flushdb
- scan
This command will sent to a random node in the cluster.
- publish
The following commands will be sent to the server that matches the first key.
- eval
- evalsha
This following commands will be sent to the master nodes in the cluster.
- script load - the result is the hash of loaded script
- script flush - the result is `True` if the command succeeds on all master nodes, else `False`
- script exists - the result is an array of booleans. An entry is `True` only if the script exists on all the master nodes.
The following commands will be sent to the sever that matches the specefied key.
- hscan
- hscan_iter
- scan_iter
- sscan
- sscan_iter
- zscan
- zscan_iter
Blocked commands
----------------
The following commands is blocked from use.
Either because they do not work, there is no working implementation or it is not good to use them within a cluster.
- bitop - Currently to hard to implement a solution in python space
- client_setname - Not yet implemented
- move - It is not possible to move a key from one db to another in cluster mode
- restore
- script_kill - Not yet implemented
- sentinel
- sentinel_get_master_addr_by_name
- sentinel_master
- sentinel_masters
- sentinel_monitor
- sentinel_remove
- sentinel_sentinels
- sentinel_set
- sentinel_slaves
- shutdown
- slaveof - Cluster management should be done via redis-trib.rb manually
- unwatch - Not yet implemented
- watch - Not yet implemented
Overridden methods
------------------
The following methods is overridden from Redis with a custom implementation.
They can operate on keys that exists in different hashslots and require a client side implementation to work.
- brpoplpus
- mget
- mset
- msetnx
- pfmerge
- randomkey
- rename
- renamenx
- rpoplpush
- sdiff
- sdiffstore
- sinter
- sinterstore
- smove
- sort
- sunion
- sunionstore
- zinterstore
- zunionstore
|