NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。 作用:应对基于海量用户和海量数据前提下的数据处理问题。
特征: ⚫ 可扩容,可伸缩 ⚫ 大数据量下高性能 ⚫ 灵活的数据模型 ⚫ 高可用
常见 Nosql 数据库: ⚫ Redis ⚫ memcache ⚫ HBase ⚫ MongoDB
⚫ 企业级应用的常见问题 ◆ 海量用户 ◆ 高并发 ⚫ NoSQL
概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。 特征:
数据间没有必然的关联关系内部采用单线程机制进行工作高性能.官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。多数据类型支持 ◆ 字符串类型 string ◆ 列表类型 list ◆ 散列类型 hash ◆ 集合类型 set ◆ 有序集合类型 zset/sorted_set支持持久化,可以进行数据灾难恢复⚫ 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等 ⚫ 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等 ⚫ 时效性信息控制,如验证码控制、投票控制等 ⚫ 分布式数据共享,如分布式集群架构中的 session 分离 ⚫ 消息队列
⚫ Redis概念 Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。 ⚫ Redis特征
数据间没有必然的关联关系内部采用单线程机制进行工作高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。多数据类型支持 ◆ 字符串类型 string ◆ 列表类型 list ◆ 散列类型 hash ◆ 集合类型 set ◆ 有序集合类型 zset/sorted_set支持持久化,可以进行数据灾难恢复⚫ 下载安装包
wget http://download.redis.io/releases/redis-5.0.0.tar.gz⚫ 解压安装包
tar –xvf redis-5.0.0.tar.gz⚫ 编译(在解压的目录中执行)
make⚫ 安装(在解压的目录中执行)
make install⚫ redis-server 服务器启动命令 ⚫ redis-cli 客户端启动命令 ⚫ redis.conf redis核心配置文件 ⚫ redis-check-dump RDB文件检查工具(快照持久化文件) ⚫ redis-check-aof AOF文件修复工具
⚫ 上传安装包
安装包已经在资料中直接上传到虚拟机⚫ 安装gcc环境
yum -y install gcc-c++ tcl⚫解压
tar -zxvf redis-5.0.0.tar.gz⚫make
进入解压目录执行make⚫make install
进入解压目录执行make install最终效果如下图⚫ 启动服务器——参数启动
redis-server [--port port]⚫ 范例
redis-server --port 6379⚫ 启动服务器——配置文件启动
redis-server config_file_name⚫ 范例
redis-server redis.conf⚫ 启动客户端
redis-cli [-h host] [-p port]⚫ 范例
redis-cli –h 61.129.65.248 –p 6384注意:服务器启动指定端口使用的是–port,客户端启动指定端口使用的是-p。-的数量不同
⚫ 创建配置文件存储目录
mkdir conf⚫ 创建服务器文件存储目录(包含日志、数据、临时配置文件等)
mkdir data⚫ 创建快速访问链接
ln -s redis-5.0.0 redis⚫ Redis启动
服务器启动 redis-server --port 6379 客户端启动 redis-cli -h IP地址 -p 端口号⚫ 设置服务器以守护进程的方式运行,开启后服务器控制台中将打印服务器运行信息(同日志内容相同)
daemonize yes|no⚫ 绑定主机地址
bind ip⚫ 设置服务器端口号
port port⚫ 设置服务器文件保存地址
dir path⚫服务器允许客户端连接最大数量,默认0,表示无限制。当客户端连接到达上限后,Redis会拒绝新的连接
maxclients count⚫ 客户端闲置等待最大时长,达到最大值后关闭对应连接。如需关闭该功能,设置为 0
timeout seconds⚫ 设置服务器以指定日志记录级别
loglevel debug|verbose|notice|warning⚫ 日志记录文件名
logfile filename注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,简化日志输出量,降低写日志IO的频度
⚫ 服务器相关
◆ daemonize yes|no ◆ bind ip-address ◆ port [port] ◆ dir ”目录名”⚫ 客户端相关
◆ maxclients [client-num] ◆ timeout [seconds]⚫ 日志相关
◆ loglevel debug|verbose|notice|warning ◆ logfile ”日志文件名”⚫ 设置 key,value 数据
set key value⚫ 范例
set name itheima⚫ 根据 key 查询对应的 value,如果不存在,返回空(nil)
get key⚫ 范例
get name⚫ 获取命令帮助文档
help [command]⚫ 范例
help set⚫ 获取组中所有命令信息名称
help [@group-name]⚫ 范例
help @string⚫ 退出客户端
quit || exit⚫ 快捷键
Ctrl+C⚫ 数据操作
◆ get ◆ set⚫ 获取帮助信息
◆ help⚫ 退出客户端
◆ quit ◆ exit