Skip to content

Adding cluster, bloom, and graph docs #1779

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,30 @@ redis-py can be installed using pip via ``pip install redis``.


Quickly connecting to redis
************
***************************

There are two quick ways to connect to Redis.

Assuming you run Redis on localhost:6379 (the default)::
**Assuming you run Redis on localhost:6379 (the default)**

.. code-block:: python

import redis
r = redis.Redis()
r.ping()

Running redis on foo.bar.com, port 12345::
**Running redis on foo.bar.com, port 12345**

.. code-block:: python

import redis
r = redis.Redis(host='foo.bar.com', port=12345)
r.ping()

Another example with foo.bar.com, port 12345::
**Another example with foo.bar.com, port 12345**

.. code-block:: python

import redis
r = redis.from_url('redis://foo.bar.com:12345')
r.ping()
Expand All @@ -47,7 +56,8 @@ Redis Command Functions
.. toctree::
:maxdepth: 2

redis_core_commands
redis_commands
redis_cluster_commands
sentinel_commands
redismodules

Expand Down
7 changes: 7 additions & 0 deletions docs/redis_cluster_commands.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Redis Cluster Commands
######################

The following `Redis commands <https://redis.io/commands>`_ are available within a `Redis Cluster <https://redis.io/topics/cluster-tutorial>`_. Generally they can be used as functions on your redis connection.

.. autoclass:: redis.commands.cluster.RedisClusterCommands
:inherited-members:
6 changes: 3 additions & 3 deletions docs/redis_core_commands.rst → docs/redis_commands.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Redis Core Commands
####################
Redis Commands
###############

The following functions can be used to replicate their equivalent `Redis command <https://redis.io/commands>`_. Generally they can be used as functions on your redis connection. For the simplest example, see below:

Expand All @@ -11,4 +11,4 @@ Getting and settings data in redis::
r.get('mykey')

.. autoclass:: redis.commands.core.CoreCommands
:members:
:inherited-members:
123 changes: 120 additions & 3 deletions docs/redismodules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,132 @@ Accessing redis module commands requires the installation of the supported `Redi

RedisTimeSeries Commands
************************

These are the commands for interacting with the `RedisTimeSeries module <https://redistimeseries.io>`_. Below is a brief example, as well as documentation on the commands themselves.


**Create a timeseries object with 5 second retention**

.. code-block:: python

import redis
r = redis.Redis()
r.timeseries().create(2, retension_msecs=5)

.. automodule:: redis.commands.timeseries.commands
:members: TimeSeriesCommands
:members: TimeSeriesCommands

-----

RedisJSON Commands
******************

These are the commands for interacting with the `RedisJSON module <https://redisjson.io>`_. Below is a brief example, as well as documentation on the commands themselves.

**Create a json object**

.. code-block:: python

import redis
r = redis.Redis()
r.json().set("mykey", ".", {"hello": "world", "i am": ["a", "json", "object!"]}


.. automodule:: redis.commands.json.commands
:members: JSONCommands
:members: JSONCommands

-----

RediSearch Commands
*******************

These are the commands for interacting with the `RediSearch module <https://redisjson.io>`_. Below is a brief example, as well as documentation on the commands themselves.

**Create a search index, and display its information**

.. code-block:: python

import redis
r = redis.Redis()
r.ft().create_index(TextField("play", weight=5.0), TextField("ball"))
print(r.ft().info())


.. automodule:: redis.commands.search.commands
:members: SearchCommands
:members: SearchCommands

-----

RedisGraph Commands
*******************

These are the commands for interacting with the `RedisGraph module <https://redisjson.io>`_. Below is a brief example, as well as documentation on the commands themselves.

**Create a graph, adding two nodes**

.. code-block:: python

import redis
from redis.graph.node import Node

john = Node(label="person", properties={"name": "John Doe", "age": 33}
jane = Node(label="person", properties={"name": "Jane Doe", "age": 34}

r = redis.Redis()
graph = r.graph()
graph.add_node(john)
graph.add_node(jane)
graph.add_node(pat)
graph.commit()

.. automodule:: redis.commands.graph.node
:members: Node

.. automodule:: redis.commands.graph.edge
:members: Edge

.. automodule:: redis.commands.graph.commands
:members: GraphCommands

-----

RedisBloom Commands
*******************

These are the commands for interacting with the `RedisBloom module <https://redisjson.io>`_. Below is a brief example, as well as documentation on the commands themselves.

**Create and add to a bloom filter**

.. code-block:: python

import redis
filter = redis.bf().create("bloom", 0.01, 1000)
filter.add("bloom", "foo")

**Create and add to a cuckoo filter**

.. code-block:: python

import redis
filter = redis.cf().create("cuckoo", 1000)
filter.add("cuckoo", "filter")

**Create Count-Min Sketch and get information**

.. code-block:: python

import redis
r = redis.cms().initbydim("dim", 1000, 5)
r.cms().incrby("dim", ["foo"], [5])
r.cms().info("dim")

**Create a topk list, and access the results**

.. code-block:: python

import redis
r = redis.topk().reserve("mytopk", 3, 50, 4, 0.9)
info = r.topk().info("mytopk)

.. automodule:: redis.commands.bf.commands
:members: BFCommands, CFCommands, CMSCommands, TOPKCommands
6 changes: 5 additions & 1 deletion redis/commands/bf/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@


class BFCommands:
"""RedisBloom commands."""
"""Bloom Filter commands."""

# region Bloom Filter Functions
def create(self, key, errorRate, capacity, expansion=None, noScale=None):
Expand Down Expand Up @@ -166,6 +166,7 @@ def info(self, key):


class CFCommands:
"""Cuckoo Filter commands."""

# region Cuckoo Filter Functions
def create(
Expand Down Expand Up @@ -283,6 +284,8 @@ def info(self, key):


class TOPKCommands:
"""TOP-k Filter commands."""

def reserve(self, key, k, width, depth, decay):
"""
Create a new Top-K Filter `key` with desired probability of false
Expand Down Expand Up @@ -432,6 +435,7 @@ def info(self, key):


class CMSCommands:
"""Count-Min Sketch Commands"""

# region Count-Min Sketch Functions
def initbydim(self, key, width, depth):
Expand Down
2 changes: 2 additions & 0 deletions redis/commands/graph/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@


class GraphCommands:
"""RedisGraph Commands"""

def commit(self):
"""
Create entire graph.
Expand Down