Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 636004e

Browse files
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.

‎redis_python_tutorial/data/__init__.py

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')}")

‎redis_python_tutorial/data/string.py

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)

AltStyle によって変換されたページ (->オリジナル) /