如何将数据从redis保存到磁盘中的文件中并读回redis

本文关键字:redis 文件 磁盘 数据 保存 | 更新日期: 2023-09-27 18:23:58

我可以在程序中写入redis并从中读取

然而,在关闭服务器后,我想数据会从内存中删除

如何将redis中的数据保存到磁盘上,下次我打开redis时,

它可以打开数据,让控制台程序读取它吗?

如果我的电脑由于突然断电而重新启动,可以重新恢复状态和吗

让程序可以读取以前的数据?

static void Main(string[] args)
        {
            RedisClient redisClient = new RedisClient("localhost");
            redisClient.FlushAll();
            var redisTodos = redisClient.As<Todo>();;
            Todo todo1 = new Todo();
            todo1.Content = "wind";
            todo1.Id = redisTodos.GetNextSequence();
            todo1.Order = 1;
            todo1.Done = false;
            redisTodos.Store(todo1);
            var savedTodo = redisTodos.GetById(todo1.Id);
            var allTodos = redisTodos.GetAll();
            foreach(var i in allTodos)
            {
                Console.WriteLine(i.Content);
            }
            Console.ReadKey();
        }

如何将数据从redis保存到磁盘中的文件中并读回redis

您想要的是Redis持久性。

您可能需要签出SAVE或BGSAVE等命令,这些命令将数据作为rdb文件转储到磁盘。这些文件稍后可以用于在启动时将数据加载到redis中

这里的问题是,您的程序要做的第一件事就是刷新整个数据库

redisClient.FlushAll();

redis保存和加载转储文件的位置在启动服务器时提供给redis的.conf文件中

$ redis-server /home/user/redis.conf

如果在没有任何.conf的情况下启动服务器,redis将从启动redis服务器的文件夹中保存并加载转储文件

$ cd /home/user/myfolder
$ redis-server

此处dump.rdb文件将被写入/home/user/myfolder/dump.rdb

要保存数据库,只需复制dump.rdb文件

你也可以看看rdd,它是一个非常灵活的工具