部署redis
apiVersion: apps/v1 # 描述api版本,默认都用这个
kind: Deployment # 资源类型,可以配置为pod,deployment,service,statefulset等等
metadata: # deployment相关的元数据,用于描述deployment的数据name: redis-deploy # deployment的名称labels: # deployment的标签app: redis # 自定义label标签,名字为app,值为redisversion: 1.0.0namespace: wyq # 命名空间
spec: # deployment的创建规则replicas: 3 # 定义副本数量是3个selector: # 定义选择受控此deployment的pod,通过标签app=redis来选择matchLabels: # app: redisversion: 1.0.0template: # 定义pod的模板,包含标签及规则metadata: # pod的相关元数据labels: app: redisversion: 1.0.0spec: # pod的规则containers: # 容器创建的规则- name: redis # 容器的名称image: redis:latest # 容器的版本,必须保证可以使用docker pull获取到的版本imagePullPolicy: IfNotPresent # 镜像拉取策略,如果本地有就用本地的,没有就拉取ports:- containerPort: 6379 # 暴露容器的端口,真实业务的端口protocol: TCP # 指定协议TCPresources: requests: # 表示容器对资源的请求量 cpu: 100m # cpu最少使用0.1个核心memory: 128Mi # 内存最少使用128Mlimits: # 最多可使用的资源量cpu: 200m # cpu最多0.2个核心<F11>memory: 256Mi # 内存最多256M restartPolicy: Always # 只有pod以非0状态退出终止时,kubelet会自动重启---
apiVersion: v1
kind: Service # service资源,
metadata: name: redis-servicenamespace: wyq
spec:selector:app: redisports:- port: 6379 # 服务访问端口,port是service的的端口,service之间访问的端口targetPort: 6379 # 目标端口,targetPort是pod的端口,也就是容器的端口nodePort: 31112 # 容器所在宿主机的端口,范围必须在30000-32767type: 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这个键值对