(1)Google Gears,利用Google Chrome浏览器的Gears去访问浏览器的离线数据库,这个数据库就是SQLite,但是非常恶心的是,Chrome的SQLite数据库是存在C盘很深很深的一个目录下面,而且不让改位置!只能连Google默认路径的数据库,不能连我自己的D盘数据库。
(2)貌似HTML5支持WebDB,但是我看了一下好像只是把文件读到内存中,使用SQL语法对内存中的映射的数据库进行 *** 作,无法 *** 作本地D盘下的某个SQLite数据库。
(3)利用第三方编译的一些dll组件,看了一下使用过程非常复杂,要把一大堆文件堆在一起。
总结:安装sqlite驱动可以做的。用sqlite3.dll这个文件可以做,直接在html中写javascript调用SQLite数据库,很爽,很完美。
结论:Redis 不能当数据用。
原因:我们理解的数据库,无论是 SQL、NoSQL、NewSQL,至少要是读写一致的。也就是说如果客户端发起一个写请求,如果服务器回复了成功,就算是之后服务器异常重启了,这个数据一样是能被读到的。
而 Redis 不是读写一致的。
答案里有人提到说 Redis 也会持久化,但是就算是 AOF,也是给客户端应答后,再定时写磁盘的,都是不一致的。
这里还没讨论磁盘损坏的问题。
有几个基于持久化存储的、兼容 Redis 协议的系统可以当作数据库使用,比如 SSDB、ARDB、Pika 等。但是据我所知,这些项目现在都不支持集群,没办法动态扩容。
另外,还有一个很麻烦的问题,就是刚才提到的 磁盘损坏问题,如果数据只存放在一个单点,一旦有磁盘损坏,就会造成数据丢失,所以,即使是同步持久化的但是没有集群备份数据的系统,用作数据库也是有很大风险的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)