Skip to content

Commit 636004e

Browse files
committed
all data types have demos
1 parent 12c3110 commit 636004e

File tree

15 files changed

+140
-50
lines changed

15 files changed

+140
-50
lines changed

main.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"""Entry point."""
2+
from redis_python_tutorial import init_redis_app
3+
4+
if __name__ == "__main__":
5+
init_redis_app()

pyproject.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,12 @@ redis = "*"
2121
loguru = "*"
2222
python-dotenv = "*"
2323

24-
[tool.poetry.dev-dependencies]
25-
pytest = "^4.6"
26-
2724
[build-system]
2825
requires = ["poetry>=0.12"]
2926
build-backend = "poetry.masonry.api"
3027

3128
[tool.poetry.scripts]
32-
run = "wsgi:main"
29+
run = "main:init_redis_app"
3330

3431
[tool.poetry.urls]
3532
issues = "https://github.com/hackersandslackers/redis-python-tutorial/issues"

redis_python_tutorial/__init__.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1+
"""Set and manipulate data in Redis."""
12
from redis_python_tutorial.client import r
2-
from redis_python_tutorial.data import set_single_values, set_nested_values
3+
from redis_python_tutorial.data import init_db_with_values
4+
from redis_python_tutorial.data.string import string_values_demo
5+
from redis_python_tutorial.data.hash import hash_values_demo
6+
from redis_python_tutorial.data.list import list_values_demo
7+
from redis_python_tutorial.data.set import set_values_demo
8+
from redis_python_tutorial.data.zset import sorted_set_values_demo
39

410

5-
def main():
6-
"""Create records in Redis."""
7-
set_single_values(r)
8-
set_nested_values(r)
11+
def init_redis_app():
12+
"""Entry point function."""
13+
r.flushdb()
14+
init_db_with_values(r)
15+
string_values_demo(r)
16+
hash_values_demo(r)
17+
list_values_demo(r)
18+
set_values_demo(r)
19+
sorted_set_values_demo(r)

redis_python_tutorial/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
"""Create Redis client."""
12
import redis
23
from config import (redis_host,
34
redis_password,
@@ -9,4 +10,4 @@
910
port=redis_port,
1011
db=redis_db,
1112
charset="utf-8",
12-
decode_responses=True)
13+
decode_responses=True,)

redis_python_tutorial/data.py

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
"""Set and manipulate data in Redis."""
3+
import time
4+
from config import redis_expiration
5+
6+
7+
def init_db_with_values(r):
8+
"""Set single key/value pairs."""
9+
r.set('ip_address', '0.0.0.0.')
10+
r.set('timestamp', int(time.time()))
11+
r.set('user_agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3)')
12+
r.set('current_page', 'account', redis_expiration)
13+
return r.keys()

redis_python_tutorial/data/hash.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"""Working with hash values."""
2+
from redis_python_tutorial.logging import logger
3+
4+
5+
def hash_values_demo(r):
6+
"""Create a hash value."""
7+
record = {
8+
"name": "Hackers and Slackers",
9+
"description": "Mediocre tutorials",
10+
"website": "https://hackersandslackers.com/",
11+
"github": "https://github.com/hackersandslackers"
12+
}
13+
r.hmset('business', record)
14+
logger.info(f"business: {r.hgetall('business')}")

redis_python_tutorial/data/list.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"""Working with list values."""
2+
from redis_python_tutorial.logging import logger
3+
4+
5+
def list_values_demo(r):
6+
"""Push and pop items from a list."""
7+
# Add single string to a new list.
8+
r.lpush('my_list', 'A')
9+
logger.info(f"my_list: {r.lrange('my_list', 0, -1)}")
10+
# Push second string to list from the right.
11+
r.rpush('my_list', 'B')
12+
logger.info(f"my_list: {r.lrange('my_list', 0, -1)}")
13+
# Push third string to list from the right.
14+
r.rpush('my_list', 'C')
15+
logger.info(f"my_list: {r.lrange('my_list', 0, -1)}")
16+
# Remove 1 instance from the list where the value equals 'C'.
17+
r.lrem('my_list', 1, 'C')
18+
logger.info(f"my_list: {r.lrange('my_list', 0, -1)}")
19+
# Push a string to our list from the left.
20+
r.lpush('my_list', 'C')
21+
logger.info(f"my_list: {r.lrange('my_list', 0, -1)}")
22+
# Pop first element of our list and move it to the back.
23+
r.rpush('my_list', r.lpop('my_list'))
24+
logger.info(f"my_list: {r.lrange('my_list', 0, -1)}")
25+
return r.lrange('my_list', 0, -1)

redis_python_tutorial/data/set.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"""Working with set values."""
2+
from redis_python_tutorial.logging import logger
3+
4+
5+
def set_values_demo(r):
6+
"""Execute unions and intersets between sets."""
7+
# Add item to set 1
8+
r.sadd('my_set_1', 'Y')
9+
logger.info(f"my_set_1: {r.smembers('my_set_1')}'")
10+
# Add item to set 1
11+
r.sadd('my_set_1', 'X')
12+
logger.info(f"my_set_1: {r.smembers('my_set_1')}'")
13+
# Add item to set 2
14+
r.sadd('my_set_2', 'X')
15+
logger.info(f"my_set_2: {r.smembers('my_set_2')}'")
16+
# Add item to set 2
17+
r.sadd('my_set_2', 'Z')
18+
logger.info(f"my_set2: {r.smembers('my_set_2')}'")
19+
# Union set 1 and set 2
20+
logger.info(f"Union: {r.sunion('my_set_1', 'my_set_2')}")
21+
# Interset set 1 and set 2
22+
logger.info(f"Intersect: {r.sinter('my_set_1', 'my_set_2')}")
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""Working with string values."""
2+
from redis_python_tutorial.logging import logger
3+
4+
5+
def string_values_demo(r):
6+
"""Manipulate strings as integers."""
7+
r.set('index', '1')
8+
# Increment string by 1
9+
r.incr('index')
10+
logger.info(f"index: {r.get('index')}")
11+
# Decrement string by 1
12+
r.decr('index')
13+
logger.info(f"index: {r.get('index')}")
14+
# Increment string by 3
15+
r.incrby('index', 3)
16+
logger.info(f"index: {r.get('index')}")

0 commit comments

Comments
 (0)