部署redis
apiVersion: apps/v1 # 描述api版本,默认都用这个
kind: Deployment # 资源类型,可以配置为pod,deployment,service,statefulset等等
metadata: # deployment相关的元数据,用于描述deployment的数据
name: redis-deploy # deployment的名称
labels: # deployment的标签
app: redis # 自定义label标签,名字为app,值为redis
version: 1.0.0
namespace: wyq # 命名空间
spec: # deployment的创建规则
replicas: 3 # 定义副本数量是3个
selector: # 定义选择受控此deployment的pod,通过标签app=redis来选择
matchLabels: #
app: redis
version: 1.0.0
template: # 定义pod的模板,包含标签及规则
metadata: # pod的相关元数据
labels:
app: redis
version: 1.0.0
spec: # pod的规则
containers: # 容器创建的规则
- name: redis # 容器的名称
image: redis:latest # 容器的版本,必须保证可以使用docker pull获取到的版本
imagePullPolicy: IfNotPresent # 镜像拉取策略,如果本地有就用本地的,没有就拉取
ports:
- containerPort: 6379 # 暴露容器的端口,真实业务的端口
protocol: TCP # 指定协议TCP
resources:
requests: # 表示容器对资源的请求量
cpu: 100m # cpu最少使用0.1个核心
memory: 128Mi # 内存最少使用128M
limits: # 最多可使用的资源量
cpu: 200m # cpu最多0.2个核心<F11>
memory: 256Mi # 内存最多256M
restartPolicy: Always # 只有pod以非0状态退出终止时,kubelet会自动重启
---
apiVersion: v1
kind: Service # service资源,
metadata:
name: redis-service
namespace: wyq
spec:
selector:
app: redis
ports:
- port: 6379 # 服务访问端口,port是service的的端口,service之间访问的端口
targetPort: 6379 # 目标端口,targetPort是pod的端口,也就是容器的端口
nodePort: 31112 # 容器所在宿主机的端口,范围必须在30000-32767
type: NodePort
到此redis可以正常访问。
连接redis:
下载redis模块
pip3 download redis -d "/opt/python/package/" -i https://pypi.mirrors.ustc.edu.cn/simple/
安装redis模块
pip3 install /opt/python/package/redis-4.3.6-py3-none-any.whl
代码:
import redis
# 连接到 Redis 服务器
r = redis.StrictRedis(host='192.168.146.129', port=31112, db=0)
#插入key
r.set('testkey', 'hello redis')
# 获取 'testkey' 的值
value = r.get('testkey')
if value is not None:
print(value.decode('utf-8')) # 将 bytes 类型转换为 str 输出
else:
print('Key not found')
执行 :
执行后显示了redis的key值
使用redis命令行前去查看,db为0里有testkey这个键值对