当前位置: 首页 > news >正文

Redis持久化-k8s - Soul

Redis持久化-k8s

概要

  • 由于Redis在K8s上跑,随着容器重启或重建Redis的数据也会销毁,所以需要持久化配置把重建前的数据保存,随容器重启或重建自动导入新创建的容器中,本文采用Redis的混合模式作为持久化配置。

k8s-KubeSphere

k8s-configMap

  • 创建k8s的配置字典(redis-conf),设置Redis的配置文件的持久化参数,开启混合模式作为持久化。
kind: ConfigMap
apiVersion: v1
metadata:name: redis-confnamespace: yyds-sys
data:redis.conf: |-##配置示例port 6379bind 0.0.0.0requirepass yyds-2025## 启用 AOF 持久化appendonly yes## 启用混合持久化 (Redis 4.0+)aof-use-rdb-preamble yes## AOF 同步策略appendfsync everysecappendfilename "appendonly.aof"## RDB 触发规则save 900 1save 300 10save 60 10000## 持久化文件存储目录dir /datadbfilename dump.rdb## AOF 重写配置auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb

k8s-pv

  • 创建k8s的持久卷(redis-data-pv),用于保存Redis持久化的数据
kind: PersistentVolume
apiVersion: v1
metadata:name: redis-data-pvfinalizers:- kubernetes.io/pv-protection
spec:capacity:storage: 20GihostPath:path: /data/redis-data/type: DirectoryOrCreateaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: redisvolumeMode: Filesystem

k8s-pvc

  • 创建k8s的持久卷声明(redis-data-pvc),用于挂载在Redis的pod中
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: redis-data-pvcnamespace: yyds-sysannotations:pv.kubernetes.io/bind-completed: 'yes'pv.kubernetes.io/bound-by-controller: 'yes'volume.beta.kubernetes.io/storage-provisioner: disk.csi.qingcloud.comvolume.kubernetes.io/selected-node: node2volume.kubernetes.io/storage-provisioner: disk.csi.qingcloud.com
spec:accessModes:- ReadWriteOnceresources:requests:storage: 20GivolumeName: redis-data-pvstorageClassName: redis-data-pvvolumeMode: Filesystem

k8s-pod

  • 修改Redis的pod,配置挂载持久化的数据
kind: Deployment
apiVersion: apps/v1
metadata:name: sys-redisnamespace: yyds-syslabels:app: sys-redisversion: v1
spec:replicas: 1selector:matchLabels:app: sys-redisversion: v1template:metadata:creationTimestamp: nulllabels:app: sys-redisversion: v1spec:volumes:- name: host-timehostPath:path: /etc/localtimetype: ''- name: volume-jvv272configMap:name: redis-confdefaultMode: 420- name: redis-datapersistentVolumeClaim:claimName: redis-data-pvccontainers:- name: sys-redisimage: 'docker.1ms.run/redis:alpine'command:- redis-serverargs:- /etc/redis/redis.confports:- name: tcp-sys-rediscontainerPort: 6379protocol: TCPresources:limits:cpu: '2'memory: 4000MivolumeMounts:- name: host-timereadOnly: truemountPath: /etc/localtime- name: volume-j2227qreadOnly: truemountPath: /etc/redis- name: redis-datamountPath: /dataterminationMessagePath: /dev/termination-logterminationMessagePolicy: FileimagePullPolicy: IfNotPresentrestartPolicy: AlwaysterminationGracePeriodSeconds: 30dnsPolicy: ClusterFirstserviceAccountName: defaultserviceAccount: defaultsecurityContext: {}schedulerName: default-schedulerstrategy:type: RollingUpdaterollingUpdate:maxUnavailable: 25%maxSurge: 25%revisionHistoryLimit: 10progressDeadlineSeconds: 600

检验持久化

# 1)进入Redis容器中、连上Redis
redis-cli -a yourpassword -h 127.0.0.1 -p 6379
# 2) 查看数据大小
keys *
dbsize
# 3) 检查Redis的数据文件是否已经创建
# 4)删除k8s中的pod
# 5) 在k8s中重新创建Redis的pod,看是否会自动导入删除前的数据
http://www.hskmm.com/?act=detail&tid=27969

相关文章:

  • 2025年最新免费版Maxon CINEMA 4D Studio 2025下载安装教程
  • adb调试
  • 创新突破!天翼云TeleDB数据库通过中国信通院数据库迁移工具专项测试
  • Node.js基础库介绍与使用
  • gaussdb常用操作 - 吾辈当奋斗
  • Go语言熟练使用指南
  • Webpack与Vite原理深度解析
  • 2025燃气采暖锅炉实力厂家最新推荐榜:卓越品质与可靠性能口
  • 架构设计能力复习
  • 2025锅炉厂家最新推荐榜:高效节能与安全运行口碑之选
  • 前端全栈工程师技术提升建议
  • 前端技术复习与体系化框架
  • 常用pg-sql操作 - 吾辈当奋斗
  • 微信社群开发
  • IStringLocalizer突然失效?线程的“失忆症”
  • IIS8.5 安装证书
  • 软件技术基础的第一次作业
  • UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision
  • n8n Docker 部署手册
  • 2025南通婚纱摄影厂家最新推荐榜:匠心工艺与浪漫美学完美结合
  • 免费音乐软件,哔哔音乐 免费下载及安装!免费音乐播放器
  • 多级缓存架构:性能与数据一致性的平衡处理(原理及优势详解+项目实战) - 教程
  • mysql设置最大连接数,MySQL最大连接数设置详解
  • 微信机器人API开放!手把手教你打造智能聊天机器人
  • 十二重计数法
  • Java高手速成--吃透源码+手写组件+定制开发
  • 【Excel】账单数据分析(数据透视表的简单应用)
  • CSP/NOIP 历年题解导引
  • 记一次Windows 10 无法打开计算器、照片等系统自带小工具问题解决
  • lca(倍增)