1 Redis 入门
1.1 技术发展
1.1.1 web 1.0 时代
- web 1.0 的时代,数据访问量非常有限,用一夫当关的高性能的单点服务器就可以解决大部分的问题。
-
1.1.2 web 2.0 时代
随着 web 2.0 时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据,加上后来的智能移动设备的普及(移动互联网),所有的互联网平台都面临了巨大的性能挑战。
1.1.3 解决 CPU 和内存压力
- 传统的 JavaWeb 是通过 session 来辨别用户的,那么 session 怎么保持一致?session 怎么存储?
- 方案 ① :
- 不使用 session ,使用 cookie 。
- 后果:cookie 是客户端技术,安全性较低,而且 cookie 中保存的数据有限制。
- 方案 ②:
- 将 session 通过序列化等技术,保存在文件服务器或数据库里面。
- 后果:大量的 IO ,性能低。
- 方案 ③:
- session 复制。
- 后果:服务器越多,内存 及 带宽浪费越大。
方案 ④:
打破了传统关系型数据库以业务逻辑为依据的存储模式,改为针对不同的数据结构类型,选择以性能为最优先的存储方式。
1.2 Redis 的简介
1.2.1 关系型数据库的问题
性能瓶颈:磁盘 IO 性能低下(关系型数据库存取数据的时候要走磁盘 IO 。磁盘性能本身是比较低)。
扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群(关系型数据库经常会遇见多表关联,一旦多表关联过大,性能会急剧下降)。
1.2.2 解决思路
降低磁盘 IO 次数,越低越好
-->
内存存储。去除数据间关系,越简单越好
-->
不存储关系,仅存储数据。1.2.3 NoSQL
NoSQL:即 Not Only SQL(泛指非关系型数据库),作为关系型数据库的补充。
- 作用:应对基于
海量用户
和海量数据
前提下的数据处理问题。 - 特征:
- 可扩容、可伸缩。
- 大数据量下高性能。
- 灵活的数据模型。
- 高可用。
常见的 NoSQL 数据库:
① 商品基本信息(MySQL):
- 名称。
- 价格。
- 厂商。
- ② 商品附加信息(MongoDB):
- 描述。
- 详情。
- 评论。
- ③ 图片信息(分布式文件系统)。
- ④ 搜索关键字(ES、Lucene、Solr)。
- ⑤
热点信息(Redis、tair)
:高频
。波段性
。
1.2.5 Redis
- 概念:
Redis(Redis Directory Server)
是用 C 语言开发的一个开源的高性能的键值对(key-value
)数据库。 - 特征:
- ① 数据间没有必然的关联关系。
- ② 高性能(官方提供测试数据,50 个并发执行 100000 个请求,读的速度是 110000 次/s,写的速度是 81000 次/s)。
- ③ 多数据类型支持:
- 字符串类型:string。
- 列表类型:list。
- 散列类型:hash。
- 集合类型:set。
- 有序集合类型:sorted_set。
- ④ 持久化支持:可以进行数据灾难数据恢复。
应用:
Windows 版本(适合零基础学习):
- Redis 入门使用。
- 以 Redis 5.0.10 作为主版本(网速不行,链接: https://pan.baidu.com/s/1AvVW1h6r3KJTUu6oIQBQGg 提取码: 0ddk)。
- 下载地址。
- Linux 版本(适用于企业级开发):
- Redis 高级开始使用。
- 以 Redis 5.0.10 版本作为主版本。
- 下载地址。
1.3.2 Redis 的安装
完成以上步骤,即可使用redis。我们可以更改redis.conf文件,配置密码,外网访问等。tar -zxvf redis-5.0.5.tar.gz -C /usr/local/
cd /usr/local/redis-5.0.5
make
#若编译失败,请检查gcc是否安装,因为redis是C语言开发的,依赖gcc。
yum -y install gcc
(1) 注释掉 bind 127.0.0.1 这一行(解决只能特定网段连接的限制)
(2) 将 protected-mode 属性改为 no (关闭保护模式,不然会阻止远程访问)
(3) 将 daemonize 属性改为 yes (这样启动时就在后台启动)
(4) 设置密码,requirepass xxxxx(可选,个人建议还是设个密码)
启动连接
进入 src目录,执行启动命令:
上面的启动方式是采取后台进程方式,下面是采取显示启动方式(如在配置文件设置了daemonize属性为yes则跟后台进程方式启动其实一样)。
两种方式区别无非是有无带符号&的区别。 redis-server 后面是配置文件,目的是根据该配置文件的配置启动redis服务。redis.conf配置文件允许自定义多个配置文件,通过启动时指定读取哪个即可。
进入 src 目录 : cd /usr/local/redis-5.0.5/src
执行启动命令: ./redis-server ../redis.conf &
接下来是连接redis:
连接命令:./redis-cli -h 127.0.0.1 -p 6379
登录密码: auth XXX