基于内存的分布式NoSQL数据库Redis(一)介绍与安装
基于内存的分布式NoSQL数据库Redis
知识点01:课程目标
- 整体目标
- Redis:NoSQL数据库,实时存储
- Kafka:消息队列,实时存储
- Hbase:NoSQL数据库,实时存储
- Redis的基本介绍和使用
- 功能与应用场景
- Redis的使用:基于命令的操作、基于编程的操作【JavaAPI】
- 多练习
- Redis的存储设计:性能、安全
- 思想:大道至简
知识点02:NoSQL与RDBMS
-
目标:了解NoSQL的应用场景与RDBMS的区别
-
路径
- step1:RDBMS的特点
- step2:业务架构中的问题
- step3:NoSQL的特点
-
实施
-
RDBMS的特点:关系型数据库管理系统
- 工具:MySQL、Oracle、SQL Server……
- 应用:业务性数据存储系统:事务和稳定性
- 特点:体现数据之间的关系,支持事务,保证业务完整性和稳定性,小数据量的性能也比较好
- 开发:SQL
-
业务架构中的问题
-
问题:以网站后台存储为例,当并发量很大,所有高并发全部直接请求MySQL,容易导致MySQL奔溃
-
需求:能实现高并发的数据库,接受高并发请求
-
-
NoSQL的特点:Not Only SQL:非关系型数据库
-
工具:Redis、HBASE、MongoDB……
-
应用:一般用于高并发高性能场景下的数据缓存或者数据库存储
-
特点:读写速度特别快,并发量非常高,相对而言不如RDBMS稳定,对事务性的支持不太友好
-
开发:每种NoSQL都有自己的命令语法
-
解决上面RDBMS的问题:使用高并发缓存实现读写分离
- 读请求:读请求不读取MySQL,读取Redis
- 写请求:写请求直接写入MySQL
-
-
-
小结
- RDBMS和NoSQL的应用特点分别是什么?
- RDBMS
- 场景:业务数据库
- 特点:稳定性高、事务支持比较完善、小数据量性能好
- NoSQL
- 场景:高并发高性能的数据存储
- 特点:稳定性和安全性相对不如RDBMS,支持高并发和高性能
知识点03:Redis的功能与应用场景
-
目标:掌握Redis的功能与应用场景
-
路径
- step1:介绍
- step2:功能特点
- step3:应用场景
-
实施
-
介绍
-
相关网站
-
官方介绍
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
-
定义:基于内存的分布式的NoSQL数据库
- 所有数据存储在内存中,并且有持久化机制
- 每次redis重启,会从文件中重新加载数据到内存,所有读写都只基于内存
-
-
功能特点
- 功能:提供高性能高并发的数据存储
- 特点
- 基于C语言开发的系统,与硬件的交互性能更好
- 基于内存实现数据读写,读写性能更快
- 分布式的:扩展性和稳定性更好
- KV结构数据库:支持事务、拥有各种丰富的数据结构
- KV结构
- 缺点:两列,不能满足复杂的业务存储
- 优点:Value可以支持多种类型,满足不同需求的存储
- String、List、Set、Hash、Zset:掌握这五种类型的读写命令
- KV结构
-
应用场景
-
缓存:用于实现大数据量高并发的大数据量缓存【临时性存储】
- 网站架构中:接受高并发的缓存读写请求
-
数据库:用于实现高性能的小数据量读写【永久性存储】
- 大数据平台中:高性能:一般用于作为实时计算结果的存储
-
消息中间件:消息队列【MQ】:用于实现消息传递,一般不用Redis
-
-
-
小结
- Redis的功能与应用场景是什么?
- 功能:实现基于高性能和高并发的数据存储【基于内存】
- 应用
- 缓存:高并发来接受高并发的读写,大数据量,临时性存储,允许数据丢失
- 数据库:高性能来接受数据的读写,小数据量,永久性存储,不允许数据丢失
- Redis的功能与应用场景是什么?
知识点04:Redis的Linux版单机部署
-
目标:实现Redis的Linux版单机部署
-
实施
-
Windows版本安装及远程工具使用请参考随堂资料《Redis的Windows版安装及远程工具的使用.pdf》
-
上传redis-3.2.8源码
cd /export/software/ rz
-
解压
tar -zxvf redis-3.2.8.tar.gz -C /export/server/
-
安装依赖
yum -y install gcc-c++ tcl
-
如果已经安装过,执行命令结果如下:
-
-
编译安装
#进入源码目录 cd /export/server/redis-3.2.8/ #编译 make #安装,并指定安装目录 make PREFIX=/export/server/redis-3.2.8-bin install
-
修改配置
-
复制配置文件
cp /export/server/redis-3.2.8/redis.conf /export/server/redis-3.2.8-bin/
-
创建目录
#redis日志目录 mkdir -p /export/server/redis-3.2.8-bin/logs #redis数据目录 mkdir -p /export/server/redis-3.2.8-bin/datas
-
修改配置
cd /export/server/redis-3.2.8-bin/ vim redis.conf
## 61行,配置redis服务器接受链接的网卡 bind node1 ## 128行,redis是否后台运行,设置为yes daemonize yes ## 163行,设置redis服务日志存储路径 logfile "/export/server/redis-3.2.8-bin/logs/redis.log" ## 247行,设置redis持久化数据存储目录 dir /export/server/redis-3.2.8-bin/datas/
-
创建软连接
cd /export/server ln -s redis-3.2.8-bin redis
-
配置环境变量
vim /etc/profile
# REDIS HOME export REDIS_HOME=/export/server/redis export PATH=:$PATH:$REDIS_HOME/bin
source /etc/profile
-
-
启动
-
端口:6379
-
启动服务端
-
启动命令
/export/server/redis/bin/redis-server /export/server/redis/redis.conf
-
启动脚本
vim /export/server/redis/bin/redis-start.sh
#!/bin/bash REDIS_HOME=/export/server/redis ${REDIS_HOME}/bin/redis-server ${REDIS_HOME}/redis.conf
chmod u+x /export/server/redis/bin/redis-start.sh
-
-
启动客户端
/export/server/redis/bin/redis-cli -h node1 -p 6379
-
关闭客户端
- exit:退出客户端
-
关闭服务端
-
方式一:客户端中
shutdown
-
方式二:Linux命令行
kill -9 redis的pid
-
方式三:通过客户端命令进行关闭
bin/redis-cli -h node1 -p 6379 shutdown
-
-
-
测试
node1:6379> keys * (empty list or set) node1:6379> set s1 hadoop OK node1:6379> keys * 1) "s1" node1:6379> get s1 "hadoop" node1:6379>
-
远程工具的使用:参考Windows安装文档
-
-
小结
- 实现Redis的Linux版单机部署
后记
📢博客主页:https://manor.blog.csdn.net
📢欢迎点赞 👍 收藏 ?留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置?
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12394313.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!