6678 Commits

Author SHA1 Message Date
Itamar Haber
931e1d6d30 Adds memory information about the script's cache to INFO
Implementation notes: as INFO is "already broken", I didn't want to break it further. Instead of computing the server.lua_script dict size on every call, I'm keeping a running sum of the body's length and dict overheads.

This implementation is naive as it **does not** take into consideration dict rehashing, but that inaccuracy pays off in speed ;)

Demo time:

```bash
$ redis-cli info memory | grep "script"
used_memory_scripts:96
used_memory_scripts_human:96B
number_of_cached_scripts:0
$ redis-cli eval "" 0 ; redis-cli info memory | grep "script"
(nil)
used_memory_scripts:120
used_memory_scripts_human:120B
number_of_cached_scripts:1
$ redis-cli script flush ; redis-cli info memory | grep "script"
OK
used_memory_scripts:96
used_memory_scripts_human:96B
number_of_cached_scripts:0
$ redis-cli eval "return('Hello, Script Cache :)')" 0 ; redis-cli info memory | grep "script"
"Hello, Script Cache :)"
used_memory_scripts:152
used_memory_scripts_human:152B
number_of_cached_scripts:1
$ redis-cli eval "return redis.sha1hex(\"return('Hello, Script Cache :)')\")" 0 ; redis-cli info memory | grep "script"
"1be72729d43da5114929c1260a749073732dc822"
used_memory_scripts:232
used_memory_scripts_human:232B
number_of_cached_scripts:2
✔ 19:03:54 redis [lua_scripts-in-info-memory L ✚…⚑] $ redis-cli evalsha 1be72729d43da5114929c1260a749073732dc822 0
"Hello, Script Cache :)"
```
2018-04-30 19:33:01 +03:00
Itamar Haber
52c9565dda Implements [B]Z[REV]POP and the respective unit tests
An implementation of the
[Ze POP Redis Module](https://github.com/itamarhaber/zpop) as core
Redis commands.

Fixes #1861.
2018-04-30 02:10:42 +03:00
artix
96865ab61b Cluster Manager: fixed expected slots calculation (rebalance)
Cluster Manager: fixed argument parsing after --cluster-weight
2018-04-23 16:28:48 +02:00
artix
6a113e8f57 Cluster Manager: fixed bug when parsing CLUSTER NODES reply (clusterManagerNodeLoadInfo) 2018-04-23 16:28:48 +02:00
artix
c941584bff Cluster Manager: code improvements and more comments added. 2018-04-23 16:28:48 +02:00
artix
53667570a7 Cluster Manager: set-timeout command 2018-04-23 16:28:48 +02:00
artix
51b8ab3c97 - Cluster Manager: del-node command.
- Cluster Manager: fixed bug in clusterManagerNodeWithLeastReplicas
2018-04-23 16:28:48 +02:00
artix
29825d8198 Cluster Manager: add-node command. 2018-04-23 16:28:48 +02:00
artix
46a75898b3 Cluster Manager: added clusterManagerCheckCluster to import command 2018-04-23 16:28:48 +02:00
artix
1239139d08 Cluster Manager: import command 2018-04-23 16:28:48 +02:00
artix
213f0cff93 Cluster Manager: fix command. 2018-04-23 16:28:48 +02:00
artix
8d1f8e343e Cluster Manager: rebalance command 2018-04-23 16:28:48 +02:00
artix
05c0101164 clusterManagerAddSlots: changed the way ADDSLOTS command is built 2018-04-23 16:28:48 +02:00
artix
c45e915ff0 ClusterManager: fixed --cluster-from 'all' parsing 2018-04-23 16:28:48 +02:00
Artix
dcc7d42742 Cluster Manager: fixed some memory error 2018-04-23 16:28:48 +02:00
artix
d031ac4a42 Fixed memory write error in clusterManagerGetConfigSignature 2018-04-23 16:28:48 +02:00
artix
c26fc9a47b Cluster Manager: reshard command, fixed slots
parsing bug and other minor bugs.
2018-04-23 16:28:48 +02:00
artix
78817f01b6 Cluster Manager:
- Almost all Cluster Manager related code moved to
  the same section.
- Many macroes converted to functions
- Added various comments
- Little code restyling
2018-04-23 16:28:48 +02:00
artix
d25f04d62d - Fixed bug in clusterManagerGetAntiAffinityScore
- Code improvements
2018-04-23 16:28:48 +02:00
artix
513fd614d3 Cluster Manager: colorized output 2018-04-23 16:28:48 +02:00
artix
fec06d1afc Cluster Manager: improved cleanup/error handling in various functions 2018-04-23 16:28:48 +02:00
artix
581823f068 Cluster Manager: 'call' command. 2018-04-23 16:28:48 +02:00
artix
29b0af5a26 Cluster Manager: CLUSTER_MANAGER_NODE_CONNECT macro 2018-04-23 16:28:48 +02:00
artix
a936b967fd ClusterManager: added replicas count to clusterManagerNode 2018-04-23 16:28:48 +02:00
artix
29e4586d40 Cluster Manager: cluster is considered consistent if only one node has been found 2018-04-23 16:28:48 +02:00
artix
9b561af4e1 Cluster Manager: reply error catch for MEET command 2018-04-23 16:28:48 +02:00
artix
ef8e711baf Cluster Manager: slots coverage check. 2018-04-23 16:28:48 +02:00
artix
4ae6041f7e - Cluster Manager: fixed various memory leaks
- Cluster Manager: fixed flags assignment in
  clusterManagerNodeLoadInfo
2018-04-23 16:28:48 +02:00
artix
01c2efc5a7 Added check for open slots (clusterManagerCheckCluster) 2018-04-23 16:28:47 +02:00
artix
7e715e35dc Cluster Manager: 'create', 'info' and 'check' commands 2018-04-23 16:28:47 +02:00
artix
a617374a65 Cluster Manager mode 2018-04-23 16:28:47 +02:00
zhaozhao.zz
ecee5da9bb RDB: expand dict if needed when rdb load object 2018-04-22 22:30:44 +08:00
antirez
742bf9dfca Streams: XTRIM command added. 2018-04-19 16:25:29 +02:00
antirez
82f250cace Streams: XADD, handle signaling of write in different ways. 2018-04-19 16:11:43 +02:00
antirez
74eb5443ce Streams: XDEL command. 2018-04-18 13:12:09 +02:00
Guy Benoish
731fafa3d8 Use memtoll() in 'CONFIG SET client-output-buffer-limit' 2018-04-18 13:01:53 +03:00
antirez
2602e3c9eb Streams: higher level "delete by ID" API for streams. 2018-04-17 17:55:56 +02:00
antirez
a7f0b02fd2 Streams: iterator entry deletion abilities. 2018-04-17 17:18:00 +02:00
zhaozhao.zz
0884b7a0a2 Modules Timer API: fix wrong raxInsert() usage 2018-04-14 01:20:02 +08:00
antirez
9191287d08 Modules API: Add call to get the blocked client handle from the context.
This is useful in the reply and timeout callback, if the module wants to
do some cleanup of the blocked client handle that may be stored around
in the module-private data structures.
2018-04-13 13:48:11 +02:00
antirez
d9c726232c Modules API: moduleGetReplyClient() refactoring. 2018-04-13 13:42:49 +02:00
antirez
c8e556d710 Modules API: blocked client disconnection callback. 2018-04-12 13:21:48 +02:00
antirez
75ab78bc9d Modules API: fix timer example. 2018-04-12 13:00:18 +02:00
antirez
1192174b53 Modules API: fix OOM_WARNING flag implementation. 2018-04-11 16:25:54 +02:00
antirez
338d823975 Modules API: OOM_WARNING flags.
In some modules it may be useful to have an idea about being near to
OOM. Anyway additionally an explicit call to get the fill ratio will be
added in the future.
2018-04-11 16:22:52 +02:00
antirez
62a9ee1988 getMaxmemoryState() fixed and improved. 2018-04-11 12:48:26 +02:00
dejun.xdj
101d428a27 Return more accurate message when specified ID is invalid 2018-04-10 17:11:10 +08:00
dejun.xdj
7e18b1de90 Bugfix: xadd command ID parse
strictly check the string to be converted,
strtoull() in libc may not set errno to EINVAL when the string contains
invalid digits.
2018-04-10 17:05:48 +08:00
dejun.xdj
1ba2425c41 Bugfix: xadd comand <field,value> arity check
missing parenthesis causes wrong arithmetic priority.
2018-04-10 16:36:05 +08:00
antirez
7713af1b0c Modules: context flags now include OOM flag.
Plus freeMemoryIfNeeded() refactoring to improve legibility.
Please review this commit for sanity.
2018-04-09 17:44:30 +02:00