一 Redis 介绍
(一) 特点及有点
开源的, 使用 C 编写, 基于内存且支持持久化
高性能的 Key-Value 的 NoSQL 数据库
支持数据类型丰富, 字符串 strings, 散列 hashes, 列表 lists, 集合 sets, 有序集合 sorted sets 等
支持多种编程语言 (C C++ Python Java PHP ... )
(二) 与其他数据库对比
MySQL : 关系型数据库, 表格, 基于磁盘, 慢
MongoDB: 键值对文档型数据库, 值为 JSON 文档, 基于磁盘, 慢, 存储数据类型单一
Redis 的诞生是为了解决什么问题?? # 解决硬盘 IO 带来的性能瓶颈
(三) 应用场景
使用 Redis 来缓存一些经常被用到, 或者需要耗费大量资源的内容, 通过这些内容放到 Redis 里面, 程序可以快速读取这些内容
一个网站, 如果某个页面经常会被访问到, 或者创建页面时消耗的资源比较多, 比如需要多次访问数据库, 生成时间比较长等, 我们可以使用 Redis 将这个页面缓存起来, 减轻网站负担, 降低网站的延迟, 比如说网站首页等
(四) 诞生历程
1, 历史
LLOOGG.com 帮助别的网站统计用户信息, 各个网站发送的浏览记录都会存储到存储队列, 5-10000 条记录, 多余 5 条需要收费
2, 原理
FIFO 机制, 先进先出, 满了进一条就出一条, 网站越多, 队列越多, 推入和弹出操作越多
3, 技术及问题
开始使用 MySQL 进行硬盘读写, 速度很慢, 导致无法实时显示, 所以自己写了一个列表结构的内存数据库, 程序性能不会受到硬盘 IO 的限制, 加了持久化的功能
4,Redis 数据库戛然而生
# 为了解决负载问题, 所以发明了 Redis
(五)Redis 附加功能
1, 持久化
将内存中数据保存到磁盘中, 保证数据安全, 方便进行数据备份和恢复
2, 过期键功能
为键设置一个过期时间, 让它在指定时间内自动删除
< 节省内存空间 >
# 音乐播放器, 日播放排名, 过期自动删除
3, 事务功能
原子的执行多个操作
4, 主从复制
5,Sentinel 哨兵
二安装
(一)Ubuntu
安装
sudo apt-get install Redis-server
服务端启动
sudo /etc/init.d/Redis-server status | start | stop | restart
客户端连接
Redis-cli -h IP 地址 -p 端口
- Redis-cli # 默认连接本机的 6379 端口
- 127.0.0.1:6379>ping
- PONG
- (二)Windows
1, 下载安装包
https://github.com/ServiceStack/redis-windows/blob/master/downloads/redis-64.3.0.503.zip
2, 解压
3, 启动服务端
双击解压后的 Redis-server.exe
4, 客户端连接
双击解压后的 Redis-cli.exe
问题: 关闭终端后服务终止
解决: 将 Redis 服务安装到本地服务
1, 重命名 Redis.Windows.conf 为 Redis.conf, 作为 Redis 服务的配置文件
2,cmd 命令行, 进入到 Redis-server.exe 所在目录
3, 执行: Redis-server --service-install Redis.conf --loglevel verbose
4, 计算机 - 管理 - 服务 - Redis - 启动
卸载
到 Redis-server.exe 所在路径执行:
- ,Redis-server --service-uninstall
- ,sc delete Redis
三配置文件详解
(一) 配置文件所在路径
- 1,Ubuntu
- /etc/Redis/Redis.conf
2,Windows 下载解压后的 Redis 文件夹中
- Redis.Windows.conf
- Redis.conf
(二) 设置连接密码
1,requirepass 密码
2, 重启服务
sudo /etc/init.d/Redis-server restart
3, 客户端连接
- Redis-cli -h 127.0.0.1 -p 6379 -a 123456
- 127.0.0.1:6379>ping
(三) 允许远程连接 sudo vi /ect/Redis/Redis.conf
- 1,# 注释掉 IP 地址绑定 69 行
- bind 127.0.0.1
- 2,# 关闭保护模式 (默认开始, 不允许外部网络访问)88 行 (把 yes 改为 no)
- protected-mode no
- 3,# 重启 Redis 服务
- sudo /etc/init.d/Redis-server restart
(四) 远程连接测试
Windows 连接 Ubuntu 的 Redis 服务
- # cmd 命令行
- 1,d:
- 2,cd Redis3.0
- 3,Redis-cli -h x.x.x.x -a 123456
- 4,x.x.x.x:6379>ping
来源: http://www.bubuko.com/infodetail-3145663.html