<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Valkey on KeyValueStore.com</title>
    <link>https://keyvaluestore.com/tags/valkey/</link>
    <description>Recent content in Valkey on KeyValueStore.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 06 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://keyvaluestore.com/tags/valkey/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ACL Builder Applies Redis and Valkey ACL Rules the Way Each Version Does, and Drafts Least-Privilege Users From MONITOR</title>
      <link>https://keyvaluestore.com/acl-builder-applies-redis-and-valkey-acl-rules-the-way-each-version-does-and-drafts-least-privilege-users-from-monitor/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/acl-builder-applies-redis-and-valkey-acl-rules-the-way-each-version-does-and-drafts-least-privilege-users-from-monitor/</guid>
      <description>&lt;p&gt;Redis and Valkey ACL rules are short and easy to get wrong. &lt;code&gt;+@all -flushall&lt;/code&gt; and &lt;code&gt;-flushall +@all&lt;/code&gt; look alike and grant different things. &lt;code&gt;%R~config:*&lt;/code&gt; reads but doesn&amp;rsquo;t write. A user made on Redis 6.2 may use every Pub/Sub channel, and the same rules on 7.0 give it none. The mistakes show up later, as &lt;code&gt;NOPERM&lt;/code&gt; errors in production or as an app user that could have run &lt;code&gt;FLUSHALL&lt;/code&gt; all along.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Config Checker Reads redis.conf the Way Each Redis and Valkey Version Does, and Finds Every Line That Would Stop the Server</title>
      <link>https://keyvaluestore.com/config-checker-reads-redis.conf-the-way-each-redis-and-valkey-version-does-and-finds-every-line-that-would-stop-the-server/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/config-checker-reads-redis.conf-the-way-each-redis-and-valkey-version-does-and-finds-every-line-that-would-stop-the-server/</guid>
      <description>&lt;p&gt;A Redis server reads its config file once, when it starts, and stops at the first line it can&amp;rsquo;t use. It prints that line and exits. Fix it, restart, and it stops at the next one. On a server that should have come back five minutes ago, with a supervisor restarting it in a loop, that&amp;rsquo;s a slow way to find a typo.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://keyvaluestore.com/tools/config/&#34;&gt;Config Checker&lt;/a&gt; reads a redis.conf or valkey.conf the way the version you pick reads it at startup. If the server wouldn&amp;rsquo;t start, you get the error it prints, word for word, at the same line, and then every other line it would stop at, each as if the ones before it were fixed. One pass finds them all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Memory Calculator Works Out How Much Memory Redis and Valkey Use for Your Keys, Matched to the Byte on 15 Versions</title>
      <link>https://keyvaluestore.com/memory-calculator-works-out-how-much-memory-redis-and-valkey-use-for-your-keys-matched-to-the-byte-on-15-versions/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/memory-calculator-works-out-how-much-memory-redis-and-valkey-use-for-your-keys-matched-to-the-byte-on-15-versions/</guid>
      <description>&lt;p&gt;How much memory do fifty million sessions need? The usual answer is a test: load a sample, read &lt;code&gt;INFO memory&lt;/code&gt;, multiply. That works for the version you tested, with the key names and values you happened to use. Change the server, add a TTL, or let a hash grow past 512 fields, and the figure moves, sometimes by half.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://keyvaluestore.com/tools/memory/&#34;&gt;Memory Calculator&lt;/a&gt; does the arithmetic the server does. You describe the keys, how many there are, how long the names are and what they hold, and it works out how much &lt;code&gt;used_memory&lt;/code&gt; grows on each of 15 versions of Redis and Valkey: the encoding each value gets, the blocks the allocator hands out, and the hash tables that hold the keys and their expiry times.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hash Slot Calculator Shows the Redis or Valkey Cluster Slot for Any Key and Catches CROSSSLOT Errors</title>
      <link>https://keyvaluestore.com/hash-slot-calculator-shows-the-redis-or-valkey-cluster-slot-for-any-key-and-catches-crossslot-errors/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/hash-slot-calculator-shows-the-redis-or-valkey-cluster-slot-for-any-key-and-catches-crossslot-errors/</guid>
      <description>&lt;p&gt;Code that ran fine against a single Redis or Valkey server often breaks the day it moves to a cluster. An &lt;code&gt;MGET&lt;/code&gt;, a &lt;code&gt;MULTI&lt;/code&gt; block or a Lua script that touched three keys now gets &lt;code&gt;CROSSSLOT Keys in request don&#39;t hash to the same slot&lt;/code&gt;, because in a cluster those keys sit in different slots, often on different servers.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://keyvaluestore.com/tools/slots/&#34;&gt;Hash Slot Calculator&lt;/a&gt; shows where keys land before that happens. Type a key and you get its slot and the primary that holds it, with the hashed part of the key marked. Paste a command and it tells you whether a cluster would run it. Paste a whole key list and it shows how the keys spread across your primaries, the busiest slots and the hash tags in use.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Keyspace Map Shows What a Redis or Valkey Keyspace Holds, From a Plain SCAN Key List</title>
      <link>https://keyvaluestore.com/keyspace-map-shows-what-a-redis-or-valkey-keyspace-holds-from-a-plain-scan-key-list/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/keyspace-map-shows-what-a-redis-or-valkey-keyspace-holds-from-a-plain-scan-key-list/</guid>
      <description>&lt;p&gt;A key-value store has no tables and no schema to read. Everything sits in one flat list of keys, and the only structure is whatever people built into the names. After a few years and a few teams, the honest answer to &amp;ldquo;what&amp;rsquo;s in our Redis?&amp;rdquo; is often a shrug.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://keyvaluestore.com/tools/keyspace/&#34;&gt;Keyspace Map&lt;/a&gt; reads that structure back out of the names. Paste the output of &lt;code&gt;redis-cli --scan&lt;/code&gt; or &lt;code&gt;valkey-cli --scan&lt;/code&gt;, and a long key list becomes a short list of patterns with counts. In one test, 9,161 keys came down to 13 lines, led by &lt;code&gt;user:&amp;lt;id&amp;gt;:profile&lt;/code&gt; with 3,000 keys, &lt;code&gt;user:&amp;lt;id&amp;gt;:settings&lt;/code&gt; with 2,000 and &lt;code&gt;session:&amp;lt;hex&amp;gt;&lt;/code&gt; with 1,500. The same keys show as a tree of prefixes you can open level by level, with how many bytes the key names take.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mass Insert Builder Turns CSV and JSON Into a Bulk-Load File for Redis and Valkey</title>
      <link>https://keyvaluestore.com/mass-insert-builder-turns-csv-and-json-into-a-bulk-load-file-for-redis-and-valkey/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/mass-insert-builder-turns-csv-and-json-into-a-bulk-load-file-for-redis-and-valkey/</guid>
      <description>&lt;p&gt;The slow way to load a million keys into Redis or Valkey is a loop that sends a command, waits for the answer, and sends the next. Most of the time goes on the waiting. At half a millisecond per round trip, a million commands take more than eight minutes before the server has done anything hard.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;redis-cli --pipe&lt;/code&gt; and &lt;code&gt;valkey-cli --pipe&lt;/code&gt; skip the wait. They stream commands as fast as the connection takes them, read the replies as they arrive, and end with a count: &lt;code&gt;errors: 0, replies: 1000000&lt;/code&gt;. The catch is that they want their input already in the Redis protocol, where every value is preceded by its length in bytes. The &lt;a href=&#34;https://keyvaluestore.com/tools/pipe/&#34;&gt;Mass Insert Builder&lt;/a&gt; writes that file for you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snapshot Viewer Opens Redis and Valkey RDB Snapshots in the Browser, From Redis 2.8 to Valkey 9.1</title>
      <link>https://keyvaluestore.com/snapshot-viewer-opens-redis-and-valkey-rdb-snapshots-in-the-browser-from-redis-2.8-to-valkey-9.1/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/snapshot-viewer-opens-redis-and-valkey-rdb-snapshots-in-the-browser-from-redis-2.8-to-valkey-9.1/</guid>
      <description>&lt;p&gt;A Redis server is using 40 GB and nobody is sure what&amp;rsquo;s in it. The usual tools all ask the server itself. &lt;code&gt;--bigkeys&lt;/code&gt; scans every key, &lt;code&gt;MEMORY USAGE&lt;/code&gt; asks about one key at a time, and a script over &lt;code&gt;SCAN&lt;/code&gt; adds its own load to a machine that&amp;rsquo;s already the busiest in the building.&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a copy of the same data that answers those questions for free: the snapshot. The &lt;a href=&#34;https://keyvaluestore.com/tools/snapshot/&#34;&gt;Snapshot Viewer&lt;/a&gt; opens a &lt;code&gt;dump.rdb&lt;/code&gt; in your browser and shows the keys by type and database, the biggest keys, the prefixes that take the most space, how long expiring keys have left, and the value of any key you pick.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Traffic Analyzer Turns Redis and Valkey MONITOR Output Into a Cache Hit-Rate Curve That Matched a Real Server</title>
      <link>https://keyvaluestore.com/traffic-analyzer-turns-redis-and-valkey-monitor-output-into-a-cache-hit-rate-curve-that-matched-a-real-server/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/traffic-analyzer-turns-redis-and-valkey-monitor-output-into-a-cache-hit-rate-curve-that-matched-a-real-server/</guid>
      <description>&lt;p&gt;A Redis server is running hot and the question is what with. &lt;code&gt;INFO commandstats&lt;/code&gt; counts commands but can&amp;rsquo;t say which keys or which clients. The slow log only keeps the slow ones. &lt;code&gt;MONITOR&lt;/code&gt; shows everything, every command with its keys and the address that sent it, but at 30,000 lines a second nobody reads it.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://keyvaluestore.com/tools/traffic/&#34;&gt;Traffic Analyzer&lt;/a&gt; reads a &lt;code&gt;MONITOR&lt;/code&gt; capture in your browser and adds it up: commands per second, the command mix, reads against writes, the busiest keys and key patterns, which clients send what, how the keys would spread over a cluster, commands worth a second look, and how many keys a cache would need to hold.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Value Inspector Decodes Pickles, Java Objects and PHP Sessions From Redis and Valkey Without Running Them</title>
      <link>https://keyvaluestore.com/value-inspector-decodes-pickles-java-objects-and-php-sessions-from-redis-and-valkey-without-running-them/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://keyvaluestore.com/value-inspector-decodes-pickles-java-objects-and-php-sessions-from-redis-and-valkey-without-running-them/</guid>
      <description>&lt;p&gt;Someone runs &lt;code&gt;GET session:42&lt;/code&gt; on a production Redis server to see why a user is stuck, and gets back &lt;code&gt;&amp;quot;\xac\xed\x00\x05sr\x00\x11java.util.HashMap\x05\a\xda\xc1...&amp;quot;&lt;/code&gt;. The data is all there. It&amp;rsquo;s in Java&amp;rsquo;s serialization format, behind &lt;code&gt;redis-cli&lt;/code&gt;&amp;rsquo;s escapes, and nobody reads that by eye.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://keyvaluestore.com/tools/inspect/&#34;&gt;Value Inspector&lt;/a&gt; does. Paste a value the way &lt;code&gt;redis-cli&lt;/code&gt; printed it, or as hex, base64 or plain text, and it works out the format and decodes it: JSON, MessagePack, CBOR, BSON, Protocol Buffers, PHP &lt;code&gt;serialize()&lt;/code&gt; and sessions, igbinary, Java serialization, Python pickles and Ruby Marshal, inside base64, gzip, zlib, LZ4 or Snappy.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
