• 欢迎访问水熊虫网站,这里是我个人的工作博客,内容大多是遇到问题完善后,会在这里进行总结归纳内容! QQ群
  • Git主题现已支持滚动公告栏功能,兼容其他浏览器,看到的就是咯,在后台最新消息那里用li标签添加即可。
  • 最新版Git主题已支持说说碎语功能,可像添加文章一样直接添加说说,新建说说页面即可,最后重新保存固定连接,演示地址

redis相关知识

整理归纳 WaterBear 2周前 (11-23) 25次浏览 已收录 扫描二维码

redis的数据存储在哪里

Redis中是把数据保存到内存中的,但是它也会定期的把数据写会到硬盘中。

Redis保存数据有两种方式:

快照模式(Snapshot)

它支持两种快照模式:

定时快照,即按一定时间将内存中的数据保存到磁盘上。

定量快照,即数据变化一定次数后将数据保存到磁盘上。

你也可以结合这两种方式,比如变化1000次,距离上次保存时间60秒以上才保存数据。

写模式(Append Only File)

这种模式下Redis会把所以修改数据的命令(如Update,Set)等保存到一个只能追加的ASAP文件中,当Redis重启时,它会把这个文件里的命令重新执行一遍。

数据保存到哪里?

数据是保存到一个数据文件中的,具体文件名要看Redis的配置文件,即Redis.conf

config get dbfilename (返回 dump.rdb)

可以使用 config set dbfilename new (修改你要保存数据的文件)

数据如何到导出?

Redis写数据时先写到一个temp文件中,然后再把temp文件重命名为预定义的文件,所以即使Redis在运行,也可以直接用cp命令拷贝这个文件。

cp /usr/loca/redis/demo.rdb  /home/greenerycn/db/demo.rdb

  数据如何恢复?

   关闭Redis后直接覆盖掉demo.rdb,然后重启即可。


查看redis的快照文件dump.rdb

        redis有两种持久化方式,Rdb 和 Aof

        RDB方式是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际的操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储(binlog)。存储的文件为:dum.rdb。然而dum.rdb使用vim打开,是一种乱码,无法会意。

ebe4ba9f3e8c3a804702057fa5aaf4b.png

所以才需要rdbtools帮助转换。

在哪里找到dum.rdb?

配置rdb目录中寻找:aof和rdb.dum都在这里

1530188743(1).png

我起初安装redis,并未执行instal_server.sh。

21480a000cc617f789fbbab40354cf3.png

6a4b5a31f7ed9b9c46020c00a1e5051.png

如何安装rdbtools?

https://github.com/sripathikrishnan/redis-rdb-tools

这里介绍了两种安装方式,我使用下面这种

pip install rdbtools python-lzf

使用的前提是要安装python, 不然pip命令不识别。

如何安装python?

https://blog.csdn.net/li_adou/article/details/78377265

我的软件都是下载到soft目录,安装到module目录。所以在soft目录执行下载命令

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz

然后解压到module目录。

dfe720381e25df82412ba96a9f8d199.png

我在当前目录下创建文件夹python3用来作为安装路径

编译:

./configure –prefix=/opt/module/Python-3.6.0/python3

安装:

make && make install

创建新版本的软连接:

在 /usr/bin/目录下,有一个python,这个python要使用我们刚安装的python.

mv /usr/bin/python /usr/bin/python_bak

ln -s /opt/module/Python-3.6.0/python3 /usr/bin/python

配置环境变量:vim /erc/profile

c907e5ae1df07b855d95becb996b66d.png

使其生效

source profile

使用pip命令时,仍不识别,需要使用pip3.

于是使用pip3安装rdbtools

pip3 install rdbtools python-lzf

安装时报了一个错误:

a0561acf5ff00a0ec687dbc8cb069ab.png

按着提示执行升级命令,升级好后,使用pip命令进行安装。

pip install rdbtools python-lzf

安装好rdbtools后,我在/opt/module/redis-4.0.2/redis/6379目录下执行,得到可memory.csv文件。

rdb -c memory dump.rdb > memory.csv

cc701d8e2f4ae2c0a3f21fb1f41aea1.png

其中:size_in_bytes 内存的大小,由此可以查询内存最高的key

num_elements 成员个数

接下来便可以通过sql来处理了。

作者:靳艳杰

链接:https://www.jianshu.com/p/366340593e40

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

GitHub上的phpRedisAdmin

https://github.com/sasanrose/phpredmin

https://github.com/void9main/SeeRedis


WaterBear , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:redis相关知识
喜欢 (1)
[[email protected]]
分享 (0)