From 07db480c0477ce3947cdd70355654346a2c767e8 Mon Sep 17 00:00:00 2001 From: Elias Elwyn Date: Sat, 13 Jul 2024 16:50:29 +1000 Subject: [PATCH] admin: expand on the redis cache adapter --- docs/admin/config-cheat-sheet.md | 1 + docs/admin/recommendations.md | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docs/admin/config-cheat-sheet.md b/docs/admin/config-cheat-sheet.md index b41e7514..447750c1 100644 --- a/docs/admin/config-cheat-sheet.md +++ b/docs/admin/config-cheat-sheet.md @@ -767,6 +767,7 @@ Define allowed algorithms and their minimum key length (use -1 to disable a type ## Cache (`cache`) - `ADAPTER`: **memory**: Cache engine adapter, either `memory`, `redis`, `redis-cluster`, `twoqueue` or `memcache`. (`twoqueue` represents a size limited LRU cache.) + - Refer to the [Recommended Settings](../recommendations/#cacheadapter) for more information about cache adapters. - `INTERVAL`: **60**: Garbage Collection interval (sec), for memory and twoqueue cache only. - `HOST`: **\**: Connection string for `redis`, `redis-cluster` and `memcache`. For `twoqueue` sets configuration for the queue. - Redis: `redis://:macaron@127.0.0.1:6379/0?pool_size=100&idle_timeout=180s` diff --git a/docs/admin/recommendations.md b/docs/admin/recommendations.md index d52958fb..e05f0be7 100644 --- a/docs/admin/recommendations.md +++ b/docs/admin/recommendations.md @@ -42,6 +42,13 @@ If your instance does not see much activity, it is recommended to change this va If your instance sees a lot of activity, it is recommended to change this value to **redis** or **memcache**. In that case, caching is outsourced to third-party software designed to cache items. Keep in mind that you will probably also need to modify `[cache].HOST` to configure the use of this software. +The **redis** adapter should support most software that works with a limited subset of the [Redis Go Client](https://github.com/redis/go-redis) APIs. In particular, Forgejo has integration tests against: + +- [Redis](https://redis.io/) v7.2; higher versions will not be officially supported due to licensing concerns, +- [Redict](https://redict.io/), a fork of Redis v7.2 licensed under the Lesser GNU General Public license (`LGPL-3.0-only`), +- [Valkey](https://valkey.io/), a fork of Redis v7.2 stewarded by the Linux Foundation, and +- [Garnet](https://microsoft.github.io/garnet), an independently implemented cache-store using [Redis's RESP](https://redis.io/docs/latest/develop/reference/protocol-spec/). + ### `[repository.signing].DEFAULT_TRUST_MODEL` When Forgejo needs to verify a GPG or SSH signed commit on a repository, it checks who it can trust to have a verified commit on that repository. The default value for this setting is that Forgejo trusts only contributors to that repository to have signed commits, this can cause unexpected behavior for those used to GitHub when hosting repositories that anyone can contribute to, because non-collaborators with signed commits on that repository are shown as unverified.