> ## Documentation Index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

<Update label="March 2026">
  Added [Upstash Redis Search](/docs/redis/search/introduction) feature, a new extension for searching Redis data. It works with JSON, Hash, and String data, automatically keeps indexes in sync with Redis writes, and supports full-text search, filtering, aggregations, aliases, highlighting, fuzzy matching, phrase queries, and regex matching.

  Redis Search is available through the [@upstash/redis](/docs/redis/sdks/ts/overview) and [upstash-redis](/docs/redis/sdks/py/overview) SDKs. If you already use `node-redis` or `ioredis`, you can use the [`@upstash/search-redis`](/docs/redis/search/adapters/node-redis) and [`@upstash/search-ioredis`](/docs/redis/search/adapters/ioredis) wrappers without switching clients.

  New Redis Search commands:

  * [`SEARCH.CREATE`](/docs/redis/commands/search/search-create): Create a search index
  * [`SEARCH.DROP`](/docs/redis/commands/search/search-drop): Remove a search index
  * [`SEARCH.DESCRIBE`](/docs/redis/commands/search/search-describe): Return metadata about a search index
  * [`SEARCH.WAITINDEXING`](/docs/redis/commands/search/search-waitindexing): Wait until pending index updates are visible to queries
  * [`SEARCH.QUERY`](/docs/redis/commands/search/search-query): Search documents with a JSON filter
  * [`SEARCH.COUNT`](/docs/redis/commands/search/search-count): Count matching documents without returning them
  * [`SEARCH.AGGREGATE`](/docs/redis/commands/search/search-aggregate): Compute analytics over matching documents
  * [`SEARCH.ALIASADD`](/docs/redis/commands/search/search-aliasadd), [`SEARCH.ALIASDEL`](/docs/redis/commands/search/search-aliasdel), and [`SEARCH.LISTALIASES`](/docs/redis/commands/search/search-listaliases): Manage search index aliases
</Update>

<Update label="December 2025">
  Added [Redis Functions](https://redis.io/docs/latest/develop/programmability/functions-intro/) support. New commands are:

  * [`FCALL`](/docs/redis/commands/functions/fcall): Call a function with read/write capabilities
  * [`FCALL_RO`](/docs/redis/commands/functions/fcall-ro): Call a function in read-only mode
  * `FUNCTION DELETE`, `FUNCTION FLUSH`, `FUNCTION KILL`, `FUNCTION LIST`, `FUNCTION LOAD` and `FUNCTION STATS`

  New Hash commands:

  * [`HGETDEL`](/docs/redis/commands/hash/hgetdel): Get and delete hash fields atomically
  * [`HGETEX`](/docs/redis/commands/hash/hgetex): Get hash fields with expiration support
  * [`HSETEX`](/docs/redis/commands/hash/hsetex): Set hash fields with expiration support

  New Stream Commands:

  * [`XDELEX`](/docs/redis/commands/streams/xdelex): Extended delete for streams
  * [`XACKDEL`](/docs/redis/commands/streams/xackdel): Acknowledge and delete stream entries

  New Bit operations added:

  * `BITOP DIFF`: A bit is set only if it's set in all source bitmaps
  * `BITOP DIFF1`: A bit is set if it's set in the first key but not in any of the other keys
  * `BITOP ANDOR`: A bit is set if it's set in X and also in one or more of Y1, Y2, ...
  * `BITOP ONE`: A bit is set if it's set in exactly one source key
</Update>

<Update label="April 2025">
  Added HASH expiration support. New commands are:

  * [`HEXPIRE`](/docs/redis/commands/hash/hexpire): Set expiration time in seconds
  * [`HPEXPIRE`](/docs/redis/commands/hash/hpexpire): Set expiration time in milliseconds
  * [`HEXPIREAT`](/docs/redis/commands/hash/hexpireat): Set expiration time as Unix timestamp in seconds
  * [`HPEXPIREAT`](/docs/redis/commands/hash/hpexpireat): Set expiration time as Unix timestamp in milliseconds
  * [`HTTL`](/docs/redis/commands/hash/httl): Get remaining time to live in seconds
  * [`HPTTL`](/docs/redis/commands/hash/hpttl): Get remaining time to live in milliseconds
  * [`HEXPIRETIME`](/docs/redis/commands/hash/hexpiretime): Get absolute expiration time as Unix timestamp in seconds
  * [`HPEXPIRETIME`](/docs/redis/commands/hash/hpexpiretime): Get absolute expiration time as Unix timestamp in milliseconds
  * [`HPERSIST`](/docs/redis/commands/hash/hpersist): Remove expiration from hash fields
</Update>

<Update label="Feb 2025">
  Added [`EVAL_RO`](/docs/redis/commands/scripting/eval-ro) and [`EVALSHA_RO`](/docs/redis/commands/scripting/evalsha-ro)
  commands introduced in Redis 7.
</Update>

<Update label="July 2024">
  * Added REST API support for [`MONITOR`](/docs/redis/commands/server/monitor) and [`SUBSCRIBE`](/docs/redis/commands/pub-sub/subscribe)
    commands using [SSE](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events).
    See [Monitor](../features/restapi#monitor-command) and [Subscribe](../features/restapi#subscribe-command) docs.
  * Added [`JSON.MSET`](/docs/redis/commands/json/json-mset) and [`JSON.MERGE`](/docs/redis/commands/json/json-merge) commands.
  * Introduced the `IP Allowlist` feature for enhanced security on newly created databases. By default, all IP addresses will be allowed.
    However, access can be restricted by specifying permitted IP addresses or CIDR ranges.
</Update>

<Update label="June 2024">
  * Added AWS AP-NorthEast-1 Japan region.
  * Added an option to return REST response in [`RESP2`](https://redis.io/docs/latest/develop/reference/protocol-spec/) format instead of `JSON`.
    See [REST API docs](/docs/redis/features/restapi#resp2-format-responses) for more information.
</Update>

<Update label="April 2024">
  * Implemented [`MONITOR`](/docs/redis/commands/server/monitor) command
  * Implemented Redis [keyspace notifications](/docs/redis/howto/keyspacenotifications)
  * Implemented [`WAIT`](/docs/redis/commands/generic/wait) and [`WAITAOF`](/docs/redis/commands/generic/waitaof) commands
  * Added `lag` field to [`XINFO GROUPS`](/docs/redis/commands/streams/xinfo-groups)
  * Added [`CLIENT ID`](/docs/redis/commands/connection/client-id) subcommand
  * Added password strength check to [`ACL SETUSER`](/docs/redis/commands/server/acl-setuser) command
</Update>

<Update label="February 2024">
  * Fixed JSON commands with empty keys
  * Fixed a panic on `XTRIM` and `XDEL`
  * Added `CLIENT SETNAME/NAME/LIST` subcommands
  * Implemented near exact trim for streams
</Update>

<Update label="September 2023">
  * Implemented some missing Redis commands:
    * `DUMP`
    * `RESTORE`
    * `ZMPOP`
    * `BZMPOP`
    * `LMPOP`
    * `BLMPOP`
    * `SINTERCARD`
  * Added support for `BIT/BYTE` flag to `BITPOS` and `BITCOUNT` commands
  * Added support for `XX`, `NX`, `GT`, and `LT` arguments to `EXPIRE` commands
  * Allowed `NX` and `GET` args to be used together in `SET` command
</Update>


## Related topics

- [Changelog](/docs/workflow/changelog.md)
- [Waiting for Events](/docs/workflow/examples/waitForEvent.md)
- [Image Processing](/docs/workflow/examples/imageProcessing.md)
