Redis简介(一)

目前互联网基本使用两种方式来进行数据的存储:关系型数据库和 NoSql 数据库。

1、 关系数据库:主要用于存储格式化的数据结构,比如 MySQL、Oracle、SqlServer 等都属于关系型数据库。

2、 NoSql (泛指:非关系型数据库)数据库,其存储的数据都是按照键值对(Key-Value)的结构进行存储。主要服务于特定背景的专用数据库,向外提供特定的 API,而不是提供通用的 SQL 接口,所以效率更加高效,简单理解就是 NOSQL 可以不写任何SQL 语句就能实现数据的存储与查询的数据库。

Redis 是一个开源 K-V 的数据库,属于 NoSql 数据库,并且与 Memcached 一样,为了保证效率,数据都是缓存在内存中,并基于内存操作,性能较高。它支持多种类型的数据结构,如字符串(Strings),散列(Hash),列表(List),集合(Set),有序集合(Sorted Set或者是ZSet)与范围查询,Bitmaps,Hyperloglogs 和地理空间(Geospatial)索引半径查询。其中常见的数据结构类型有:String、List、Set、Hash、ZSet这5种。,在内存中设计了各种数据类型,让业务能够高速原子的访问这些数据结构,并且不需要关心持久存储的问题,从架构上解决了关系型数据库存储需要走一些弯路的问题。所以作为缓存应用,与其类似的 Memcached,EHCache,OSCache 等缓存器相比,Redis 的出现,很大程度补偿了 Memcached 这类 key/value存储的不足,在高并发查询时可以对关系数据库起到很好的性能补充作用。此外与Memcached 的最大区别在于:Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slave(主从)同步,故:Redis 支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。

Redis 内置了复制(Replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(Transactions) 和不同级别的磁盘持久化(Persistence),并通过 Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(High Availability)。

Redis也提供了持久化的选项,这些选项可以让用户将自己的数据保存到磁盘上面进行存储。根据实际情况,可以每隔一定时间将数据集导出到磁盘(快照),或者追加到命令日志中(AOF只追加文件),他会在执行写命令时,将被执行的写命令复制到硬盘里面。您也可以关闭持久化功能,将Redis作为一个高效的网络的缓存数据功能使用。

Redis不使用表,他的数据库不会预定义或者强制去要求用户对Redis存储的不同数据进行关联。

数据库的工作模式按存储方式可分为:硬盘数据库和内存数据库。Redis 将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度极快。

猜你喜欢

转载自blog.csdn.net/weixin_42189604/article/details/82702812