Redis非关系型(NoSQL)数据库

关系型数据库,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库中的数据。主流的 oracle、DB2、MS SQL Server和mysql都属于这类传统数据库。

NoSQL数据库,全称为Not Only SQL,意思就是适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储如KV存储。主要分为临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(CassandraHBase)Hadoop,每种NoSQL都有其特有的使用场景及优点。

oracle,mysql等传统的关系数据库非常成熟并且已大规模商用,为什么还要用NoSQL数据库呢?主要是由于随着互联网发展,数据量越来越大,对性能要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且扩展困难。这样既有单机单库瓶颈,却又扩展困难,自然无法满足日益增长的海量数据存储及其性能要求,所以才会出现了各种不同的NoSQL产品,NoSQL根本性的优势在于在云计算时代,简单、易于大规模分布式扩展,并且读写性能非常高。

下面分析下两者的特点,及优缺点:

关系型数据库

<1>关系数据库的特点是:

- 数据关系模型基于关系模型,结构化存储,完整性约束。

- 基于二维表及其之间的联系,需要连接、并、交、差、除等数据操作。

- 采用结构化的查询语言(SQL)做数据读写。

- 操作需要数据的一致性,需要事务甚至是强一致性。

<2>优点:

- 保持数据的一致性(事务处理)

- 可以进行join等复杂查询。

- 通用化,技术成熟。

<3>缺点:

- 数据读写必须经过sql解析,大量数据、高并发下读写性能不足。

- 对数据做读写,或修改数据结构时需要加锁,影响并发操作。

- 无法适应非结构化存储。

- 扩展困难。

- 昂贵、复杂。

NoSQL数据库

<1>NoSQL数据库的特点是:

- 非结构化的存储。

- 基于多维关系模型。

- 具有特有的使用场景。

<2>优点:

- 高并发,大数据下读写能力较强。

- 基本支持分布式,易于扩展,可伸缩。

- 简单,弱结构化存储。

<3>缺点:

- join等复杂操作能力较弱。

- 事务支持较弱。

- 通用性差。

- 无完整约束复杂业务场景支持较差。

 

step1:下载

  wget http://download.redis.io/releases/redis-5.0.5.tar.gz

step2:解压

  tar xzf redis-5.0.5.tar.gz

step3:移动,放到usr/local⽬录下

  sudo mv ./redis-5.0.5 /usr/local/redis/

step4:进⼊redis⽬录

  cd /usr/local/redis/

step5:生成(由于redis是用C语言写的,所以要用make命令进行编译)

  sudo make

step6:测试,这段运⾏时间会较⻓

  sudo make test

        出现报错:You need tcl 8.5 or newer in order to run the Redis test 

        

解决方式
安装tcl

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install

step7:安装,将redis的命令安装到/usr/local/bin/⽬录

  cd /usr/local/redis/

  sudo make install

step8:安装完成后,我们进入目录/usr/local/bin中查看

  cd /usr/local/bin
  ls -all

  • redis-server redis服务器
  • redis-cli redis命令行客户端
  • redis-benchmark redis性能测试工具
  • redis-check-aof AOF文件修复工具
  • redis-check-rdb RDB文件检索工具

step9:配置⽂件,移动到/etc/⽬录下

  配置⽂件⽬录为/usr/local/redis/redis.conf 

  mkdir /etc/redis/

  sudo cp /usr/local/redis/redis.conf /etc/redis/

  

核心配置选项

  • 绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ip
    •   bind 127.0.0.1
  • 端⼝,默认为6379port 6379
    •   port 6379
  • 是否以守护进程运⾏

    • 如果以守护进程运⾏,则不会在命令⾏阻塞,类似于服务
    • 如果以⾮守护进程运⾏,则当前终端被阻塞
    • 设置为yes表示守护进程,设置为no表示⾮守护进程
    • 推荐设置为yes
      •   daemonize yes
  • 数据⽂件

    •   dbfilename dump.rdb

  • 数据⽂件存储路径
    •   dir /var/lib/redis
  • ⽇志⽂件
    •   logfile "/var/log/redis/redis-server.log"
  • 数据库,默认有16个
    •   database 16
  • 主从复制,类似于双机备份。
    •   slaveof

 参考资料:redis配置信息http://blog.csdn.net/ljphilp/article/details/52934933

Redis服务器端和客户端的命令

服务器端

    • 服务器端的命令为redis-server

    • 可以使⽤help查看帮助⽂档

      •   redis-server --help

    • 个人习惯
      • ps aux | grep redis 查看redis服务器进程
        sudo kill -9 pid 杀死redis服务器
        sudo redis-server /etc/redis/redis.conf 指定加载的配置文件

客户端

  • 客户端的命令为redis-cli
  • 可以使⽤help查看帮助⽂档
    •   redis-cli --help
  • 连接redis

    •   redis-cli

  运⾏测试命令

    ping

  • 切换数据库

  • 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库

    •   select 10

Mac 上安装 Redis:

posted @ 2019-07-18 08:57  广东赖  阅读(309)  评论(0编辑  收藏  举报