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