首先声明,本系列Redis博文内容是本人学习【狂神说Java】Redis最新超详细版教程通俗易懂整理的学习笔记,本人也是初次接触Redis,水平有限,难免有错误不足之处,欢迎大家评论指正交流。
目录
一、数据库使用发展历程
先介绍下互联网使用MySQL使用的发展历程:
1.单机MySQL阶段:一台MySQL数据库,用户直接获取数据。当数据量过大时,单台机器放不下了,访问量过大时,一个服务器也承受不了,同时单表数据超过300W条时,数据必须建立索引,机器内存也放不下。于是到了第二阶段
2.缓存(Memcached)+MySQL+垂直拆分(读写分离):28原则,数据库服务器80%情况在读数据,20%在写数据。因此采用多台MySQL服务器,采用主从复制,主机写,从机读,实现读写分离,同时引入缓存,对经常访问的数据放入缓存中,减轻服务器压力。
3.分库分表+水平拆分+MySQL集群:解决数据库读写性能问题
4.MySQL+NoSQl:信息爆炸,数据爆炸,关系型数据库不够用了,数据量大,变化快,数据种类多,需要非关系型数据库专门处理这类数据。如用户的个人信息、社交网络、定位信息,用户自己产生的数据爆发式增长,这些数据的存储不需要固定的格式,不需要多余的操作就可以横向扩展,使用键值对的形式来存储。
二、数据库瓶颈
1.IO瓶颈
2.CPU瓶颈
三、分库分表
1.水平分库
2.水平分表
3.垂直分库
4.垂直分表
四、NoSQL的特点
1.方便扩展(数据之间没有关系,很好扩展)
2.大数据量高性能(Redis一秒写8W,读11W,NoSQL缓存记录是一种细粒度的缓存,性能会比较高)
3.数据类型是多样型的!(不需要事先设计数据库,随取随用,如果是数据库十分大的表,很多人就无法设计)
4.传统的关联性数据库(RDBMS)和NoSQl
RDBMS:
结构化组织、SQL、数据和关系都存储在单独的表中、操作语言,数据定义语言、严格的一致性、基础的事务...
NoSQL:
不仅仅是数据、没有固定的查询语言、键值对存储、列存储,文档存储,图形数据库(社交关系)、最终一致性、高性能、高可用、高可扩
五、真正的公司中的实践:RDBMS+NoSQL
#1.商品的基本信息
名称、价格、商家信息;关系型数据库就可以解决了!MySQL、Oracle
#2.商品的描述、评论(文字比较多)
文档型数据库(MongoDB)
#3.图片
分布式文件系统FastDFS 阿里云的 OSS
淘宝自己的TFS
google的GFS
hadoop HDFS
#4.商品的关键字(搜索)
搜索引擎:solr、elasticsearch
ISerach:多隆
#5.商品的热门的波段信息
内存数据库
redis、Tair、Memache...
#6.商品的交易,外部的支付接口
三方应用
NoSQL四大分类:1.KV键值对;2.文档型数据库;3.列存储数据库;4.图形关系数据库
Redis入门
Redis(Remote Dictionary Server),即远程字典服务。开源的、使用ANSI c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库。当下最热门的NoSQL技术之一,也称为结构化数据库。
Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master—slave同步(主从同步)
Redis作用:
1.内存存储、持久化,内存中是断电即失,所以持久化很重要(RDB、AOF)
2.效率高,可以用于高速缓存
3.发布订阅系统
4.地图信息分析
5.计时器、计数器(浏览量)
6....
特性
1.多样的数据类型
2.持久化
3.集群
4.事务
...
Linux下载安装测试
redis下载安装步骤:Redis官网下载对应版本,进入文件目录下(确保有gcc),输入make命令安装,默认安装路径是/usr/local/bin, 复制安装包路径下的redis.conf到 /usr/local/bin/自定义文件夹下,修改redis.conf文件,将daemonize no改成daemonize yes
安装,make命令
确认安装完毕
复制配置文件,将其从下载目录复制到默认安装目录下(likeconfig是我自己新建的存放配置文件的地方),修改redis.conf文件,将daemonize no改成daemonize yes,允许以后台进程启动。
启动redis,在/usr/local/bin目录下: sudo redis-server likeconfig/redis.conf //启动redis服务
客户端连接:sudo redis-cli -p 6379 // 6379是默认端口
redis测试:ping 可以返回PONG
set key value
get key
keys * //查看所有的key
此时可正常运行,说明Redis安装成功且可以正常运行。