您当前的位置:首页 > 互联网教程

redis不是数据库吗(redis是关系数据库吗)

发布时间:2025-05-25 00:54:15    发布人:远客网络

redis不是数据库吗(redis是关系数据库吗)

一、redis不是数据库吗(redis是关系数据库吗)

是数据库Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。定义

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。[1]

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是britishIndianOceanterritory,即英属印度洋领地)

目前,Vmware在资助着redis项目的开发和维护。

redis[2]的作者,叫SalvatoreSanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。他使用的网名是antirez。

下面是官方的bench-mark数据:[1]

测试完成了50个并发执行100000个请求。

设置和获取的值是一个256字节字符串。

Linuxbox是运行Linux2.6,这是X3320Xeon2.5ghz。

文本执行使用loopback接口(127.0.0.1)。

结果:读的速度是110000次/s,写的速度是81000次/s。

二、redis 有数据库表的概念吗

redis就是kv存储,没有数据库表的概念,你写的东西一定要设置时限,或者写好文档,如果你走了,后期没人维护,非常浪费资源。还有就是redis是存内存的,非常快速但是昂贵,建议你用redis存储时先算一下数据量,看看你内存能不能装下,需要几台机器,几台备份机,服务器一旦重启数据全无,使用时小心,望采纳~

三、Redis 可以用来做数据库吗

redis能否做数据库用取决于如下几个条件:

1:数据量,毕竟内存数据库,还是受限于内存的容量,虽然可以redis可以持久化。

2:数据的结构,是否能够将关系型数据结构都转换为key/value的形式。

3:查询的效率,对范围查询等,是否能转换为高效的hash索引查询

redis能不能拿来当数据库,取决于你想要存储什么数据:

如果你打算存储一些临时数据,数据规模不大,不需要太复杂的查询,但是对性能的要求比较高,那可以拿redis当数据库使用。

redis能不能做数据库,要看你具体的需求了:

1.像上面提到的,redis的持久化有问题,如果使用aof模式,并且fsync always,则性能比mysql还低,如果你喜欢redis方便的数据结构而对性能要求不高,或者性能要求很高,但允许一定程度的丢失数据,则可以用redis做为数据库。

2. redis是内存数据库,内存写满后,数据不会存储到硬盘上(VM不稳定,diskstore未启用),如果你内存足够大,则可以用redis作为数据库。

redis是一种k/v的内存数据库,适合小数据量的存储以及实时要求高的地方,但是不适合做完整数据库,完整数据库基本上都有一套详细解决方案,基本上没有做了的,比如mysql。

项目里用到的redis是用来做缓存的,设置过期时间,到时就自动清掉。数据库还是用mysql等这种成熟的方案。

如果你非要用一种nosql来做数据库,推荐你用Mongodb。

这种KV存储完全不具备数据库所能提供的数据安全性保障。

redis做数据库不靠谱,不是所有的数据都是立即回写磁盘的。