1

我可以在程序中写入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();
        }
4

2 回答 2

1

您正在寻找的是Redis Persistance

您可能想要检查诸如SAVEBGSAVE 之类的命令,它们将数据作为 rdb 文件转储到磁盘。这些文件稍后可用于在启动时将数据加载到 redis

于 2013-07-19T09:57:59.820 回答
0

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

redisClient.FlushAll();

redis保存和加载他的dump文件的地方是在启动服务器时给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谁是一个非常灵活的工具

于 2013-07-22T20:54:20.030 回答