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

时间:2013-07-19 09:51:42

标签: c# redis

我可以写一个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();
        }

2 个答案:

答案 0 :(得分:1)

您要找的是Redis Persistance

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

答案 1 :(得分:0)

这里的问题是你的程序做的第一件事就是刷新完整的数据库

redisClient.FlushAll();

redis保存并加载其转储文件的位置在启动服务器时给予redis的.conf文件中

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

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

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

这里dumb.rdb文件将被写入/home/user/myfolder/dump.rdb

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

您还可以查看rdd谁是一个非常灵活的工具