引入Redis
redis的出现是为了解决以下问题现象:
- 海量用户
- 高并发
出现此问题现象的罪魁祸首是关系型数据库:
- 性能瓶颈:磁盘IO性能低下
- 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群
解决思路: - 降低磁盘IO次数,越低越好—— 内存存储
- 去除数据间关系,越简单越好—— 不存储关系,仅存储数据
redis是一种nosql型的数据库。
NoSQL
即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。
作用:应对基于海量用户和海量数据前提下的数据处理问题。
常见 Nosql 数据库:
Redis
memcache
HBase
MongoDB
特征:
- 可扩容,可伸缩
- 大数据量下高性能
基于以上问题现象给出一个在电商场景下的解决方案。
解决方案(电商场景)
- 商品基本信息(使用Mysql数据库等)
名称
价格
厂商 - 商品附加信息(使用MongDB数据库)
描述
详情
评论 - 图片信息(分布式文件系统)
- 搜索关键字(ES、 Lucene、 solr)
- 热点信息(Redis、 memcache、 tair)
高频
波段性
Redis简介
概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。
特征:
- 数据间没有必然的关联关系
- 内部采用单线程机制进行工作
- 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
- 多数据类型支持
字符串类型 string
列表类型 list
散列类型 hash
集合类型 set
有序集合类型 sorted_set - 持久化支持。可以进行数据灾难恢复
Redis应用
- 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等
- 任务队列,如秒杀、抢购、购票排队等
- 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等
- 时效性信息控制,如验证码控制、投票控制等
- 分布式数据共享,如分布式集群架构中的 session 分离
- 消息队列
- 分布式锁
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的启动
redis的启动分为服务端启动和客户端启动。
服务端启动:
客户端启动:
直接在redis安装目录下点击redis-cli.exe或者新开一个cmd打开redis-cli.exe
一定不能中途关闭服务端,否则客户端也无法使用,会报错。
Redis的基础操作
- 信息添加
功能:设置 key,value 数据
set key value
- 信息查询
功能:根据 key 查询对应的 value,如果不存在,返回空(nil)
get key
- 清屏
clear
- 退出客户端
quit
exit
<ESC>
- 帮助
功能:获取命令帮助文档,获取组中所有命令信息名称
help 命令名称
help @组名