• Itamar Haber's avatar
    Adds memory information about the script's cache to INFO · 49890c8e
    Itamar Haber authored
    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 :)"
    ```
    49890c8e
scripting.c 86 KB