第一章、Redis 入门
1.1、Redis简介
问题现象
- 海量用户
- 高并发(无法同时处理海量请求)
罪魁祸首——关系型数据库
- 性能瓶颈:磁盘IO性能低下
- 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群
解决思路(引用Nosql型数据库)
- 降低磁盘IO次数,越低越好 —— 内存存储
- 去除数据间关系,越简单越好 —— 不存储关系,仅存储数据
1.2、Nosql型数据库
- NoSQL:即Not-Only SQLF(f泛指非关系型的数据库),作为关系型数据库的补充。
- 作用:应对基于海量用户和海量数据前提下的数据处理问题。
- 特征:
- 可扩容、可伸缩
- 大数据量下高性能
- 灵活的数据模型
- 高可用
- 常见的NoSQL数据库:
Redis
- memcache
- HBase
- MongoDB
1.3、电商应用场景及解决方案
基本固定信息存放在MySQL中;
商品附加信息量过大存放在MongoDB中;
高频波动性信息(实时变动信息)存放在Redis中。
1.4、Redis概念及特征
-
概念:
Redis(Remote Dictionary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库。 -
特征:
- 数据间没有必然的关联关系
- 内部采用单线程机制进行工作
- 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
-
多数据类型支持
字符串类型 string
列表类型 list
散列类型 hash
集合类型 set
有序集合类型 sorted_set -
持久化支持。可以进行数据灾难恢复
1.5、Redis的应用
- 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等
- 任务队列,如秒杀、抢购、购票排队等
- 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设 备信号等
- 时效性信息控制,如验证码控制、投票控制等
- 分布式数据共享,如分布式集群架构中的 session 分离
- 消息队列
- 分布式锁
1.6、Redis的下载与安装
-
Linux 版(适用于企业级开发)
Redis 高级开始使用
以4.0 版本作为主版本
下载地址:http://redis.io/download,下载最新稳定版本。 -
Windows 版本(适合零基础学习)
Redis 入门使用
以 3.2 版本作为主版本
下载地址:https://github.com/MSOpenTech/redis/tags -
安装
Redis是绿色免安装的,下载后将压缩包解压到D盘(解压后最好将文件夹重命名为redis,为了方便起见)
-
其中核心文件:
redis-server.exe —服务器启动命令
redis-cli.exe —命令行客户端
redis.windows.conf —redis核心配置文件
redis-benchmark.exe —性能测试工具
redis-check-aof.exe —AOF文件修复工具
redis-check-dump.exe —RDB文件检查工具(快照持久化文件) -
启动Redis
打开cmd窗口,cd 命令切换目录到 D:\redis 运行如下命令:redis-server.exe redis.windows.conf
也可以创建一个集群,将该命令存入startRedis.bat中(放在redis解压目录中),这样以后启Redis就不用再输命令,直接双击startRedis.bat即可
如果想方便的话,也可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的服务器。启动之后,会显示如下界面:
这时候另启一个 cmd 窗口,上面的窗口不要关闭,不然就无法访问服务端了。
切换到 redis 目录下运行:redis-cli.exe -h 127.0.0.1 -p 6379
-h 代表连接服务器地址
-p 端口号此时连接的是默认的Redis服务器,一般我们为了安全起见,会设置一个连接密码用于权限认证,在redis解压目录中找到redis.windows.conf配置文件用Notepad++打开,大概在443行,我们可以自定义一个密码,此处我设置为123456
此时关闭上面的窗口再次重新启动,可用命令redis-server.exe redis.windows.conf启动服务器,也可双击startRedis.bat启动,启动后如下图:
然后这时候再另启一个 cmd 窗口,上面的窗口不要关闭,不然就无法访问服务端了。
切换到 redis 目录下运行:redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
-h 代表连接服务器地址
-p 端口号
-a 密码
出现上述127.0.0.1:6379就说明客户端成功连接redis服务器。
当然上述客户端连接命令也可以做成批处理文件linkRedis.bat中(放在redis解压目录中),每次用的时候,先启动Redis服务器,然后在双击linkRedis.bat就可连接客户端进行操作了。
1.7、Redis的最基本操作
- 功能:设置 key,value 数据(键值对)
#信息添加格式 set key value #设置键值(信息添加) set username zs #获取键值(信息查询) get username
- 清屏操作命令
clear
- 退出客户端命令
quit exit <Esc>
- 功能:获取命令帮助文档,获取组中所有命令信息名称
help 命令名称 help @组名 help set