diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 3322a944..fd890554 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -1,18 +1,13 @@ -name: Spellcheck -on: - push: - branches: [master] - pull_request: - branches: [master] +on: [push, pull_request] +permissions: + contents: read jobs: spellcheck: runs-on: ubuntu-latest + name: Spellcheck steps: - - uses: actions/checkout@v2 - - name: Spellcheck - uses: redis-stack/github-actions/spellcheck@main - env: - DICTIONARY: wordlist - DOCS_DIRECTORY: . - CONFIGURATION_FILE: .spellcheck.yml - COMMANDS_FILES: commands.json + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: tbroadley/spellchecker-cli-action@v1 + with: + files: "commands/*.md topics/*.md !topics/modules-api-ref.md" + config: .spellcheckerrc.yml diff --git a/.spellcheck.yml b/.spellcheck.yml deleted file mode 100644 index b63649b8..00000000 --- a/.spellcheck.yml +++ /dev/null @@ -1,11 +0,0 @@ -files: - - '**/*.md' - - '!resources/clients/index.md' - - '!resources/libraries/index.md' - - '!resources/modules/index.md' - - '!resources/tools/index.md' - - '!docs/reference/modules/modules-api-ref.md' -dictionaries: - - wordlist -no-suggestions: true -quiet: true diff --git a/.spellcheckerrc.yml b/.spellcheckerrc.yml new file mode 100644 index 00000000..f214ca90 --- /dev/null +++ b/.spellcheckerrc.yml @@ -0,0 +1,11 @@ +files: + - 'topics/*.md' + - 'commands/*.md' + - '!topics/modules-api-ref.md' +dictionaries: + - wordlist +noSuggestions: true +quiet: true +plugins: + - spell + - frontmatter diff --git a/README.md b/README.md index 3eaeec57..b448f8ca 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,10 @@ npm install --global spellchecker-cli You can than validate your spelling by running the following ``` -spellchecker --no-suggestions -f '**/*.md' -l en-US -q -d wordlist +spellchecker ``` Any exceptions you need for spelling can be added to the `wordlist` file. +Text within backticks is not checked, so using backticks for command names, +parameter values and similar is a good idea to avoid getting spelling errors for +things like that. diff --git a/commands/cluster-nodes.md b/commands/cluster-nodes.md index 7188eed3..475b67aa 100644 --- a/commands/cluster-nodes.md +++ b/commands/cluster-nodes.md @@ -105,4 +105,4 @@ Note that: 1. Migration and importing slots are only added to the node flagged as `myself`. This information is local to a node, for its own slots. 2. Importing and migrating slots are provided as **additional info**. If the node has a given hash slot assigned, it will be also a plain number in the list of hash slots, so clients that don't have a clue about hash slots migrations can just skip this special fields. -**A note about the word slave used in this man page and command name**: If not for Redis OSS compatibility, the Valkey project dones not use the word slave. Unfortunately in this command the word slave is part of the protocol, so we'll be able to remove such occurrences only when this API will be naturally deprecated. +**A note about the word slave used in this man page and command name**: If not for Redis OSS compatibility, the Valkey project does not use the word slave. Unfortunately in this command the word slave is part of the protocol, so we'll be able to remove such occurrences only when this API will be naturally deprecated. diff --git a/commands/georadiusbymember.md b/commands/georadiusbymember.md index 79a4b330..1b261037 100644 --- a/commands/georadiusbymember.md +++ b/commands/georadiusbymember.md @@ -5,7 +5,7 @@ The position of the specified member is used as the center of the query. Please check the example below and the `GEORADIUS` documentation for more information about the command and its options. -Note that `GEORADIUSBYMEMBER_RO` is addeded in order to provide a read-only command that can be used in replicas. See the `GEORADIUS` page for more information. +Note that `GEORADIUSBYMEMBER_RO` was added to provide a read-only command that can be used in replicas. See the `GEORADIUS` page for more information. ## Examples diff --git a/commands/object-encoding.md b/commands/object-encoding.md index 7c2ab473..37728537 100644 --- a/commands/object-encoding.md +++ b/commands/object-encoding.md @@ -13,7 +13,7 @@ Valkey objects can be encoded in different ways: - `linkedlist`, simple list encoding. No longer used, an old list encoding. - `listpack`, a space-efficient encoding used for small lists. - - `quicklist`, encoded as linkedlist of ziplists or listpacks. + - `quicklist`, encoded as linked list of ziplists or listpacks. * Sets can be encoded as: diff --git a/commands/ttl.md b/commands/ttl.md index 5be474c3..ed2b59d1 100644 --- a/commands/ttl.md +++ b/commands/ttl.md @@ -2,7 +2,7 @@ Returns the remaining time to live of a key that has a timeout. This introspection capability allows a Valkey client to check how many seconds a given key will continue to be part of the dataset. -The command returns the following valueis in case of errors: +The command returns the following values in case of errors: * The command returns `-2` if the key does not exist. * The command returns `-1` if the key exists but has no associated expire. diff --git a/topics/history.md b/topics/history.md index 304e807c..81352bb0 100644 --- a/topics/history.md +++ b/topics/history.md @@ -38,7 +38,7 @@ Early contributions and sponsorships During 2009, Engine Yard contributed blocking POP (BLPOP) and part of the Virtual Memory implementation (later deleted), Hitmeister contributed part of the Cluster implementation and Citrusbyte contributed part of Virtual Memory -implementation. In 2010, Slicehost (aquired by Rackspace) provided Virtual +implementation. In 2010, Slicehost (acquired by Rackspace) provided Virtual Machines for testing in a virtualized environment and Linode provided virtual machines for testing in a virtualized environment. Also thanks to the following people or organizations that donated to the Project: Emil Vladev, [Brad @@ -79,7 +79,7 @@ database services based on Redis. In 2013, Garantia Data was changing its name to RedisDB, but [decided to withdraw the change][redisdb] after complaints by Sanfilippo: -[redisdb]: https://techcrunch.com/2014/01/29/database-provider-garantia-data-makes-another-name-change-this-time-to-redis-labs/ +[redisdb]: https://www.forbes.com/sites/benkepes/2013/11/04/was-garantia-is-now-redisdb-either-way-nosql-is-hot/ > If this is true, it is not a good thing as the current informal rule was: use > "Redis" in company names that are selling Redis services, but in a way that @@ -93,7 +93,7 @@ Sanfilippo: The following year, 2014, Garantia Data [changed its name to Redis Labs][redislabs]. -[redislabs]: https://techcrunch.com/2014/01/29/database-provider-garantia-data-makes-another-name-change-this-time-to-redis-labs/) +[redislabs]: https://techcrunch.com/2014/01/29/database-provider-garantia-data-makes-another-name-change-this-time-to-redis-labs/ In 2015, Salvatore left Pivotal for Redis Labs. He writes in his blog post [Thanks Pivotal, Hello Redis Labs](http://antirez.com/news/91): @@ -145,7 +145,7 @@ The end of open source Redis In 2024, Redis Ltd. changed the license of Redis from the open source BSD license to dual source-available licenses. This was announced in a blog post [Redis Adopts Dual Source-Available Licensing][redis-source-avail] and the -license change was [commited to the repository][change-license-pr] the same day. +license change was [committed to the repository][change-license-pr] the same day. [redis-source-avail]: https://redis.io/blog/redis-adopts-dual-source-available-licensing/ [change-license-pr]: https://github.com/redis/redis/pull/13157 diff --git a/topics/index.md b/topics/index.md index 14e13199..f0665047 100644 --- a/topics/index.md +++ b/topics/index.md @@ -34,11 +34,11 @@ Programming with Valkey Server-side scripting in Valkey --- -* [Programability overview](programmability.md): An overview of programmability in Valkey. -* [Valkey Lua API](lua-api.md): The embedded [Lua 5.1](https://lua.org) interepreter runtime environment and APIs. +* [Programmability overview](programmability.md): An overview of programmability in Valkey. +* [Valkey Lua API](lua-api.md): The embedded [Lua 5.1](https://lua.org) interpreter runtime environment and APIs. * [Introduction to Eval Scripts](eval-intro.md): An introduction about using cached scripts. * [Introduction to Valkey Functions](functions-intro.md): An introduction about using functions. -* [Debugging Lua scripts](ldb.md): An overveiw of the native Valkey Lua debugger for cached scripts. +* [Debugging Lua scripts](ldb.md): An overview of the native Valkey Lua debugger for cached scripts. Administration --- diff --git a/topics/license.md b/topics/license.md index 9e960dab..8ccd68b0 100644 --- a/topics/license.md +++ b/topics/license.md @@ -55,7 +55,7 @@ POSSIBILITY OF SUCH DAMAGE. Files in the Valkey distribution that were originally created for Redis when Redis was still under the three-clause BSD license contain the following license -(which differes from the above text only in one occurrence of "Redis" in the 3rd +(which differs from the above text only in one occurrence of "Redis" in the 3rd clause): ``` diff --git a/topics/pubsub.md b/topics/pubsub.md index 908290d2..82dc0495 100644 --- a/topics/pubsub.md +++ b/topics/pubsub.md @@ -9,7 +9,7 @@ aliases: - /docs/manual/pubsub --- -`SUBSCRIBE`, `UNSUBSCRIBE` and `PUBLISH` implement the [Publish/Subscribe messaging paradigm](https://en.wikipedia.org/wiki/Publish/subscribe) where publishers send their messages to channels, without knowlege of what receivers (subscribers) there may be. +`SUBSCRIBE`, `UNSUBSCRIBE` and `PUBLISH` implement the [Publish/Subscribe messaging paradigm](https://en.wikipedia.org/wiki/Publish/subscribe) where publishers send their messages to channels, without knowledge of what receivers (subscribers) there may be. Subscribers express interest in one or more channels and only receive messages that are of interest, without knowledge of what (if any) publishers there are. This decoupling of publishers and subscribers allows for greater scalability and a more dynamic network topology. diff --git a/wordlist b/wordlist index 2974cb5a..cc2f1b22 100644 --- a/wordlist +++ b/wordlist @@ -1,47 +1,8 @@ -3:00 AM -4:00 AM -5:00 AM -6:00 AM +[A-Z_-]+\.? +[\w-]+\.\w+ +\d+\w+.* .rdb ˈrɛd-ɪs -0s -0x00060007 -0x00MMmmpp -100k -100MB -10GB -10k -128MB -12k -1GB -1s -1th -2GB -3am -300ms -30ms -32bit -32MB -3c3a0c -3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e -3GB -3MB -4am -4GB -4k -5am -500MB -512MB -5GB -6am -60s -6sync -80ms -85MB -8MB -8ms -90s -97a3a64667477371c4479320d683e4c8db5858b1 A1 acknowledgement ACKs @@ -63,7 +24,6 @@ AMD64 analytics antirez antirez's -AOF aof AOF_START aof-1 @@ -76,10 +36,7 @@ APIs appendfsync appendonly applicative -args -ARGV -argv -argvs +arg[csv]* Arity arity ASN @@ -88,6 +45,7 @@ async Asyncio atomicity Atomicvar +Attribution-ShareAlike Auth auth authenticateClientWithUser @@ -120,13 +78,9 @@ Benchmarking benchmarking big-endian BigNumber -bikes:racing:france -bikes:racing:italy -bikes:racing:usa -bikes:rentable +\w+:\w.* birthyear bitfield -bitfield Bitfields bitfields BitOp @@ -145,37 +99,32 @@ broadcasted brpop bt btree1-az -C1 -C2 -C3 -C4 -C5 +C[1-9] +cacert +cacertdir CallReply cancelled cardinalities cardinality -CAS CAs casted Castilla cd CentOS -CFIELD Changelog changelogs charset Chemeris cheprasov +ciphersuites Citrusbyte cjson -CKQUORUM cleartext -CLI cli CLI's CloseKey cluster-config-file -Cmd +[Cc]md cmsgpack Cn codename @@ -183,7 +132,6 @@ codenamed Collina's commandstats commnad -CONFIG Config config config-file @@ -192,7 +140,6 @@ configs const ContextFlags Costin -CP cpu cpu-profiling CPUs @@ -202,12 +149,10 @@ CRC-16 CRC16 CRC64 CRDTs -CRLF CRLF-terminated cron cryptographic -CSV -Ctrl-a +Ctrl-\w ctx daemonize daemonized @@ -215,6 +160,7 @@ daemontools dataset datastore dbid +dbnum DBs de de-serialization @@ -242,28 +188,18 @@ deserializing desync desynchronize dev +dicts? dir Diskless diskless DistLock distlock -DLM -DMA dnf -DNF -DNS -DSL dup-sentinel Dynomite earts -EBADF eBPF -EBS EC2 -EDOM -EEXIST -EFBIG -EINVAL ele emented enable-protected-configs @@ -277,21 +213,15 @@ end-slotN endian endianness Enduro -ENOENT -ENOTSUP Enum enum enum_val enum_vals enums -EOF -EP -EPEL epel-release epoll EPSG:3785 EPSG:900913 -ERANGE Ergonom errno error1 @@ -334,11 +264,8 @@ first-arg first-args firstkey FlameGraph -FLUSHCONFIG fmt -foo0 -foo1 -foo2 +foo[0-9] formatter france_location FreeBSD @@ -352,13 +279,12 @@ Fsyncing fsyncing fsyncs func +Garantia Gbit -GDB gdb geo geo_tutorial geoadd -GEODEL Geohash geohash geohash-encoded @@ -367,14 +293,12 @@ Geohashes geosearch Geospatial geospatial -GET-MASTER-ADDR-BY-NAME getkeys-api Github github globals go-redis Gottlieb -GPG gpg Gradle Hacktoberfest @@ -398,7 +322,6 @@ hgetall hincrby hiredis Hitmeister -HLL HLLs HMAC-SHA256 hmget @@ -408,18 +331,13 @@ hostname hostnames Hotspot hotspots +Hping hset -HVM -HW -HyperLogLog -hyperloglog -HyperLogLog. -HyperLogLogs -Hyperloglogs -hyperloglogs +https +Huawei +[Hh]yper[Ll]og[Ll]og.? i8 iamonds -IANA Identinal idletime idx @@ -443,7 +361,6 @@ iostat IoT ip ip:port -IPC IPs IPv4 IPv6 @@ -456,7 +373,6 @@ iteratively ition Janowski Javadocs -JDK Jedis jedis JedisCluster @@ -468,9 +384,8 @@ jemalloc JKS jpeg js -JSON +json JSON-encoded -JUSTID kB keepalive keylen @@ -479,10 +394,10 @@ keyname keynum keynumidx keyrings -KEYSPACE Keyspace keyspace keyspace-notifications +keyspacelen KeyspaceNotification keyspec keystep @@ -500,7 +415,6 @@ latencies latencystats launchd lazyfree-lazy-user-flush -LDB ldb leaderboard Leaderboards @@ -511,9 +425,6 @@ len lenptr Levelgraph lexicographically -LF -LFU -LHF libc LibLZF libssl-dev @@ -522,6 +433,7 @@ licensor's linenoise linkTitle Linode +listpacks little-endian Liveness liveness @@ -543,7 +455,6 @@ lpop_rpop lpush lpush_rpush lrange -LRU lru_cache LRU. LRU's @@ -551,42 +462,39 @@ lsb_release lsb-release ltrim ltrim_end_of_list -LUA Lua lua-api lua-debugging lua-replicate-commands -Lua-to-Redis +Lua-to-Valkey Lua's lubs Lucraft M1 MacBook -macOS +[mM]acOS macroscopically malloc -MASTERDOWN +manpage Matteo matteocollina maxlen -MAXLEN Maxmemory maxmemory +maxmemory-policy +mem Memcache memcached memset memtest86 memtier_benchmark -MERCHANTABILITY MessagePack metatag mget middleware -MINID miranda misconfiguration misconfigured -MKSTREAM modules-api-ref moduleType Movablekeys @@ -603,14 +511,11 @@ myzset namespace namespacing NaN -NAS natively NATted Nehalem netcat newjobs -NFS -NIC NICs nils no-appendfsync-on-rewrite @@ -625,7 +530,6 @@ non-loopback non-reachability non-virtualized nonprintable -NOOP Noordhuis nopass Norem @@ -633,17 +537,14 @@ NoSQL notify-keyspace-events notifyKeyspaceEvent NRedisStack -NTP NullArray nullarray num-items -NUMA numactl numkeys -NX +numreq nx observability -ODOWN octothorpe odown Ok @@ -651,17 +552,16 @@ ok oldval oneof onwards -OOM OpenBSD OpenSSL openssl +OpenRedis Opteron optionals OR-ing ORed -ORM +os OSGEO:41001 -OSS overcommit p50 p999 @@ -673,16 +573,13 @@ parameterization parametrize params parsable -PEL PELs -PEM perf perf_events performance-on-cpu PFAIL php-redis-lock PHPRedisMutex -PID pid pidfile Pieter @@ -692,11 +589,8 @@ pipelining pkcs12 PMCs pmessage -PMU Pool2 POP3 -POSIX -POV ppa:redislabs pre-conditions pre-configured @@ -717,7 +611,6 @@ printf printf-alike Prioglio privdata -PRNG probabilistically proc Programm @@ -736,17 +629,14 @@ Pydantic qsort queueing quickstarts -R1 -R2 +Rackspace +R[0-9] race:france race:italy race:usa radix rc -RC1 -RC3 -RC4 -RDB +RC[0-9]+ rdb-preamble RDB-saving rdd @@ -768,37 +658,16 @@ reconfigurations reconfigures Reconfiguring reconfiguring -reconnection -reconnections +reconnections? Reddit's Redimension -redirections -REdis -redis -redis-benchmark -redis-check-aof -redis-cli -redis-clients -redis-doc -redis-hashes -redis-lua -redis-macOS-demo -redis-om-python -redis-om-python. -redis-py -Redis-rb -redis-rb-cluster -redis-server -redis-stable -Redis-to-Lua -RedisCallReply -RedisConf +redirections? +[Rr][Ee]dis +[Rr]edis-[\w-]* +Redis[A-Z].* Redises RedisHost. -REDISMODULE_OPTIONS_HANDLE_REPL_ASYNC_LOAD -RedisModule.* redisObjectVM -REDISPORT Redisson Redistributions Redlock @@ -829,12 +698,7 @@ resharded Resharding resharding reshardings -RESP2 -RESP2. -RESP3 -RESP3-typed -RESP3. -RESP3's +RESP[0-9].* Resque resque resync @@ -847,26 +711,17 @@ returing Retwis Retwis-J Retwis-RB -RHEL -RM_.* -RM_CreateCommand -RM_CreateStringFromString -RM_IsKeysPositionRequest -RM_KeyAtPosWithFlags -RM_SetCommandInfo roadmap robj Roshi roundtrips -RPC rpc-perf rpop rpush Rslock -RSS +RSALv2 rss rtckit -RTT RU101 RU102 RU202 @@ -874,10 +729,7 @@ runid runlevels RW Rx/Tx -S1 -S2 -S3 -S4 +S[1-9] SaaS sadd sadd_smembers @@ -889,9 +741,8 @@ Sanfilippo's scalable scard ScarletLock -SCP +Shoolman sdiff -SDOWN sdown sds se @@ -909,13 +760,7 @@ sharding Shuttleworth si sidekiq -SIGBUS -SIGFPE -SIGILL -SIGINT signle -SIGSEGV -SIGTERM sinter sismember slave-reconf-done @@ -936,6 +781,7 @@ Solaris-derived somekey SomeOtherValue Sonatype +sortedset SoundCloud spectrogram spellchecker-cli @@ -943,9 +789,8 @@ spiped spo sponsorships srem -SSD -SSL StackOverflow +Stancliff start-slot1 start-slot2 start-slotN @@ -953,6 +798,7 @@ startfrom status1 status2 stdin +stdout\.? storepass strace stream_toturial @@ -986,10 +832,9 @@ T2 taskset TCL tcmalloc -TCP tcp +Tencent the-redis-keyspace -TLS TLS-enabled tls-port tmp @@ -1002,14 +847,11 @@ tradeoffs transactional try-failover Tthe -TTL TTLs tty tunable Twemproxy typemethods_ptr -UI -ULID ULIds ULIDs un-authenticated @@ -1037,16 +879,18 @@ Unwatches unwatches uppercased urandom -URI -USD used_memory_scripts_eval userSession usr UTF-8 utf8 utils -v9 -Valkey +v[0-9\.]+ +[Vv]alkey +[Vv]alkey-[\w+-]+ +Valkey's +Valkey[A-Z].* +Valkey. value-ptr ValueN Variadic @@ -1056,7 +900,6 @@ virginia Virtualized virtualized Vladev -VM vm vm-max-memory VMs @@ -1065,54 +908,39 @@ vmSwapOneObject VMware volatile-lru volatile-ttl -VPS vtype -WAITAOF Westmere wget wherefrom whitespace whitespaces whos-using-redis -WRONGTYPE -WSL WSL2 xack -XACK xadd -XADD xadd_2 xadd_7 xadd_bad_id xadd_id xautoclaim -XAUTOCLAIM xautoclaim_cursor xclaim -XCLAIM xdel -XDEL Xen Xen-specific Xeon xff -XGROUP xgroup_create xgroup_create_mkstream xgroup_read xgroup_read_bob xinfo -XINFO xinfo_consumers xinfo_groups xlen -XLEN -XMODEM xpending -XPENDING xpending_plus_minus xrange -XRANGE xrange_all xrange_empty xrange_pending @@ -1120,26 +948,18 @@ xrange_step_1 xrange_step_2 xrange_time xread -XREAD -XREADGROUP xgroup_read_id xread_block xrevrange -XREVRANGE -XSCAN xtrim -XTRIM xtrim2 XYZ xzvf -YCSB +Yiftach Yossi Z1 ZeroBrane zeroed-ACLs Zhao ziplists -ZMODEM -ZPOP -ZSET zset