蘭雅sRGB 个人笔记 https://262235.xyz
提供编程和电脑应用视频教程,工具和源代码
C, C++, Python Programming, Source Code, Video

旧Hexo博客 | Github | IP定位WebAPI | Docker Hub
编程中文文档 | 网盘分享 | 中文Linux命令

搭建你的缓存服务器Redis和 Python 使用 redis 服务

搭建你的缓存服务器Redis

知识点

  • 使用Docker技术搭建Redis服务器

官网

https://redis.io/

Docker Hub

https://hub.docker.com/_/redis/

实战演习

# 拉取Redis镜像
$ sudo docker pull redis:alpine
$ sudo docker image ls  或者  docker images

# 建立Redis永久化卷标
$ sudo docker volume create --name v_redis_data
$ sudo docker volume ls
$ sudo docker run -d --name redis -v v_redis_data:/data -p 6379:6379 \
       redis:alpine redis-server --appendonly yes --requirepass redis@2022
$ sudo docker container ls   或者  docker ps

# 确认本地打开的tcp端口号
$ netstat -nltp   或者   ss -lt4
$ sudo docker exec -it redis top

# 启用客户端连接redis服务
$ sudo apt install redis-tools
$ redis-cli -h 127.0.0.1 -p 6379 -a redis@2022
127.0.0.1:6379> ping
127.0.0.1:6379> info
127.0.0.1:6379> set data01 "helo, redis."
127.0.0.1:6379> get data01
127.0.0.1:6379> set data02 "https://262235.xyz"
127.0.0.1:6379> get data02
127.0.0.1:6379> keys *
127.0.0.1:6379> exit

Python 要使用 redis,需要先安装 redis 模块

pip3 install redis

测试是否安装成功:

>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
>>> r.ping()
True
>>> r.info()
{ 'redis_version': '6.2.6',
'os': 'Linux 5.10.0-9-amd64 x86_64',
... 'tcp_port': 6379,  ... }

redis 提供两个类 RedisStrictRedis, StrictRedis 用于实现大部分官方的命令,Redis 是 StrictRedis 的子类,用于向后兼用旧版本。
redis 取出的结果默认是字节,我们可以设定 decode_responses=True 改成字符串。

import redis

r = redis.Redis(host='localhost', port=6379, password='密码')  # decode_responses=True 输出字符串
r.set('webapi', '262235.xyz/ip')
print(r.get('webapi'))

# 输出  b'262235.xyz/ip'

连接池

redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。
默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池。

import os, redis

pool = redis.ConnectionPool(host='localhost', port=6379, db=0,
                password='密码', decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('webapi', '262235.xyz/ip')
print(r.get('webapi'))

cmd = 'curl -sL ' + r.get('webapi')
os.system(cmd)

# 输出  262235.xyz/ip  和 当前ip
本原创文章自由转载,转载请注明本博来源及网址 | 当前页面:兰雅sRGB个人笔记 » 搭建你的缓存服务器Redis和 Python 使用 redis 服务