首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Redis内存碎片清理

当Redis中清理了大量的Key之后原先Redis申请的内存(used_memory_rss)将继续持有而不会释放,此时查看内存信息将会看到存在大量的内存碎片。...那么,Redis的内存碎片可以清理么,该如何清理呢? 翻看了Redis的相关资料发现,Redis4版本之后开始支持内存碎片清理,于是进行了一次测试,内容如下: 1....清理内存碎片 默认情况下自动清理碎片的参数是关闭的,可以按如下命令查看 127.0.0.1:6379> config get activedefrag 1) "activedefrag" 2) "no..." 启动自动清理内存碎片 127.0.0.1:6379> config set activedefrag yes OK 开启后再查看内存信息 127.0.0.1:6379> info memory #...相关参数配置说明 内存清理相关参数如下,可以使用config get的方式查看对应的值 # Enabled active defragmentation # 碎片整理总开关 # activedefrag

5.3K34

Linux-MySQL数据备份和定时清理

最近接了个新需求,需要将我们经常使用的几个数据库MySQL、influxdb在Linux系统上实现定时自动备份,比如每天备份一次,间隔31天清理31天之前备份的数据,研究了一下,准备先从MySQL实现...MySQL自己已经提供了命令行导出数据库数据以及文件的一种工具mysqldump,其实可以通过命令行直接导出数据库数据实现备份。...在登录进入mysql命令行中,通过source指令找到对应系统中的文件进行还原: mysql> source /test.sql 编写shell脚本维护备份的MySQL数据库文件 在linux中,通常使用...以下代码功能就是针对mysql进行备份,配合crontab定时任务,实现备份的内容为近10天内的每天的mysql数据库记录。.../server/backups/mysql-dump.sh 随后使用crontab命令定期指令编写的定时脚本 $ crontab backups.cron 再通过命令检查定时任务是否已创建: $ crontab

1.9K20

Redis内存碎片的产生与清理

大于1小于1.5:正常值,有一些内存碎片,但也可以提高性能,可以接受 大于1.5:说明内存碎片率比较大,需要考虑是否要进行内存碎片清理,要引起重视 小于1:内存不够redis用了,已经开始使用swap机制交换内存...,也就是使用硬盘了(swap可以在设置中禁用),需要考虑扩容redis了 如何清理内存碎片?...yes OK 自动内存清理的一些相关配置如下: # Enabled active defragmentation # 碎片整理总开关 # activedefrag yes # Minimum amount...100 当然,在面对一些复杂的场景时我们希望能根据自己设计的策略来进行内存碎片清理,redis也提供了手动内存碎片清理的命令: 127.0.0.1:6379> memory purge OK 总结...占有欲很高的的redis总是会留下已经不用的内存,这在生产环境中必然是不能接受的,所以内存碎片清理非常重要

3.1K31

Mysql数据库定时备份

Mysql数据库定时备份 背景 首先我不是DBA,我只是个后端开发,有一个自己的网站,突然有一天,听到有个同学说,他们数据库被黑了,别人黑完删库跑路了,请教我怎么恢复,同学是非开发人员,其实我很想说我也不会...我快速百度了下怎么恢复,网上教我们的手段一般有: 数据库备份了么? 同学说没有,pass。 日志开启了么? 同学说没有,pass。 你数据库是MyIsam,看看黑客有没有把文件转移?...所以,我赶紧把我的mysql数据库备份了一下,用最简单的方式。 内容过于简单,可能会引起部分人群不适。...简单备份 mysqldump -u root -p feiyun > feiyun.sql.20190507 这里,feiyun 是数据库名,-u 是指定用户名, -p是输入密码 , -> 重定向到文件...定时备份 cron中添加一个作业 # crontab –e 0 1 * * * /root/dump/backup.sh 每天1点执行下backup.sh backup.sh: #!

3.8K30

Mysql数据库定时备份

MySQL数据备份 mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下...mysql系统中,通过source指令找到对应系统中的文件进行还原: mysql> source /data/mysqlDump/mydb.sql 编写脚本及定时任务 在linux中,通常使用BASH...以下代码功能就是针对mysql进行备份,配合crontab,实现备份的内容为近一个月(31天)内的每天的mysql数据库记录。...定期执行编写的定时任务脚本(记得先给shell脚本执行权限) 每5分执行一次 ```bash */5 * * * * /data/cron/mysql_dump_script.sh 注意:这操作是直接替换该用户下的...crontab,而不是新增 添加一行后一定要换行 随后使用crontab命令定期指令编写的定时脚本 crontab /data/cron/mysqlRollBack.cron 再通过命令检查定时任务是否已创建

8.9K20

mysql 数据库 定时自动备份

一、mysql提供了一个mysqldump的工具可以方便的导出导入数据库信息; 一般情况下mysql数据库安装成功后,mysqldump的位置在:/usr/bin 的目录会有mysqldump这个文件...#mysql_bin_dir:mysql的bin路径; #dataname:数据库名; #user:数据库用户名; #password:用户密码; #name:自定义备份文件前缀标识 # name:自定义备份文件前缀标识...#数据库备份的位置 backupdir=/home/mysqlbak time=` date +%Y%m%d%H%M%S` #需要备份的数据库的连接的用户名和密码和数据库 #mysql_bin_dir/...image.png 第四步:配置linux定时任务 创建定时任务:crontab -e [图片上传失败......-e (编辑工作表) -l (列出工作表里的命令) -r (删除工作作) 查看定时任务:crontab -l [root@localhost mysqlbak

4.3K10

MySQL之表碎片简介

MySQL之表碎片简介 今天简单讲讲MySQL中的表碎片,改天我们详细展开这个概念。...要想知道表的碎片的详细信息,我们首先需要观察一张表:information_schema中的tables表,如下: information_schema的tables表 对于mysql和Infobright...等数据库,information_schema数据库中的表都是只读的,不能进行更新、删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件。...TABLE_COMMENT 创建表时使用的注释(或有关MySQL无法访问表信息的信息) 表碎片整理 上面tables表中提到的data_free字段,就是表碎片的一个指标,当我们发现了表存在碎片时...如果在一个碎片率很高的表进行新的插入操作,MySQL将尝试利用那些留空的区域,但是由于插入数据的不确定性,这些留空的内存区域仍然无法被彻底占用。

1.2K20

MySQL 清除表空间碎片

MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片; (3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分...; 例如: 一个表有1万行,每行10字节,会占用10万字节存储空间,执行删除操作,只留一行,实际内容只剩下10字节,但MySQL在读取时,仍看做是10万字节的表进行处理,所以,碎片越多,就会越来越影响查询性能...查看表碎片大小 (1)查看某个表的碎片大小 mysql> SHOW TABLE STATUS LIKE '表名'; 结果中’Data_free’列的值就是碎片大小 ?...where table_schema not in ('information_schema', 'mysql') and data_free > 0; 清除表碎片 (1)MyISAM表 mysql...,例如每周三凌晨,检查DATA_FREE字段,大于自己认为的警戒值的话,就清理一次。

4.1K51

linux系统定时备份MySQL数据库

一个项目的基础便是数据库,但是可能因为某些原因会导致数据丢失,或数据库结构变化,严重一点的或造成数据库删除。...为了以防万一,这时候就需要我们定时进行数据库备份,但是如果人来操作的话会是一个比较麻烦的工程,这时我们可以使用mysqldump写个脚本,由Linux的crontab来定时执行。...假如在我的数据库中有一个emp的数据库。...[在这里插入图片描述]大功告成,当然我们实际应用中不需要每分钟进行数据库的备份,具体的crontab表达式可根据实际进行编写。...6.如果一直备份,那会消耗大量的服务器内存,因此需要定时的删除一些时间比较久的备份,只需要在bkemp.sh文件中添加如下代码即可。

6K50

MySQL 案例:表空间碎片

引发这个其妙现象的就是 MySQL 的表空间碎片。 什么是表空间碎片?...PS:这种不释放空间的设计多半和惰性删除有关,早期设计数据库时,使用的 IO 设备一般是机械盘,读写性能比 SSD 差很多,所以删除操作一般不会直接触发磁盘上的数据删除。...怎么查看表空间碎片 MySQL 的系统表记录了表空间的使用情况,可以用如下查询检查: SELECT CONCAT(table_schema,'.'...,data_free_pct 指这个表的碎片百分比,效果如下: mysql> SELECT CONCAT(table_schema,'.'...对于回收空间的问题 对一些日志表,或者是有区域性特征的表,建议使用 MySQL 的分区表来管理,需要清理一批数据的时候,可以用 partition truncate 的方式进行清理,磁盘空间也能直接释放掉

5.2K50

使用脚本定时备份 MySQL 数据库

在检查备份时,可能会报 [Err] 2006 - MySQL server has gone away 这是应为可能是 sql 语句过长即 sql 文件过大,超过 MySQL 通信缓存区最大长度。...使用 crontab -l 可以查看写好的定时任务;使用 service crond restart 可以重启定时任务服务。...1.2 Windows 备份远程数据库 ☞ 编写脚本   Windows 备份远程数据库的过程跟 Linux 备份数据库的过程类似,是不过一个是 bat 脚本,一个是 sh 脚本。...替换下面的 MySQL 安装目录,用户名,密码,远程IP,远程端口,数据库名以及存放备份文件的目录。...-%date:~8,2%.sql" @echo on ☞ 添加定时任务   在计算机关机中选择任务计划程序,创建一个任务,定时触发执行写好的脚本即可。

2.7K40
领券