目录
1. redis简介
- Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。(是一个非关系型的数据库)
既然提到非关系数据库,那么就有必要说一下关系型数据库和非关系型数据库的区别了。
1. 数据存储结构的不同
首先关系型数据库一般都有固定的表结构,并且需要通过DDL(数据定义语言)语句来修改表结构,不是很容易进行扩展。
非关系型数据库的存储机制就有很多,比如咱们今天介绍的redis就是基于key/value俗称键值对,还有其他的比如基于文档的、基于图的等等,对于数据的格式十分灵活没有固定的表结构,方便扩展,因此如果业务的数据结构并不固定的或者经常变动比较大的,那么非关系型数据库是一个不错的选择
2. 可扩展性的不同
传统的关系型数据库给人一种横向扩展难,不好对数据进行分片等。
而一些非关系型数据库则原生就支持数据的水平扩展(就比如mongodb的sharding机制),并且这可能也是很多nosql的一大卖点,其实像mysql这种关系型数据库的水平扩展也并不是难,即使nosql水平扩展容易但对于向跨分片进行joins这种场景都没有什么太好的解决办法,不管是关系型还是非关系型数据库,解决水平扩展或者跨分片joins这种场景,在应用层和数据层中间加一层中间件来做数据处理也许是个好的办法
3. 数据一致性的不同
非关系型数据库一般强调的是数据最终一致性,而没有像ACID一样强调数据的强一致性,从非关系型数据库中读到的有可能还是处于一个中间态的数据,因此如果你的业务对于数据的一致性要求很高,那么非关系型数据库并不是一个很好的选择,非关系型数据库可能更多的偏向OLAP场景,而关系型数据库更多偏向于OLTP场景
-
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系型数据库起到很好的补充作用。它提供了Java,c/c++,c#,PHP,JavaScript,Perl,object-C,python,ruby,erlang等客户端,使用很方便
-
redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以关联其他从服务器的主服务器。这使得redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从服务器在任何地方同步树时,可以阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
2. redis安装部署
2.1 下载安装包
[root@localhost src]# wget https://download.redis.io/releases/redis-5.0.9.tar.gz
[root@localhost src]# tar xf redis-5.0.9.tar.gz -C /usr/local/
[root@localhost ~]# yum -y install gcc gcc-c++ make
2.2 编译安装
[root@localhost ~]# cd /usr/local/redis-5.0.9/
[root@localhost redis-5.0.9]# make
[root@localhost redis-5.0.9]# cd src/
[root@localhost src]# make install
2.3 配置环境变量
[root@localhost redis-5.0.9]# vim /etc/profile
末尾添加
省略……
#redis
export PATH=/usr/local/redis-5.0.9/src:$PATH
[root@localhost redis-5.0.9]# source /etc/profile
2.4 启动redis
[root@localhost redis-5.0.9]# vim redis.conf
136 daemonize yes //把no改为yes
[root@localhost redis-5.0.9]