Redis安装与基本介绍
前言
介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL
属于非关系型数据库;Redis就属于非关系型数据库
传统的Mysql ,oracle ,sql server 等 都是关系型数据库
为什么需要NoSQL,主要应对以下问题,传统关系型数据库力不从心
High performance -高并发读写
Huge Storage-海量数据的高效率存储和访问
High Scalablility && High Availability 高可扩展性和高可用性
NoSQL 产品 MongoDB Redis等等 Redis目前主流
NoSQL的特点
易扩展
灵活的数据模型
大数据量,高性能
高可用
高性能键值对数据库,支持的键值数据类型
字符串类型
列表类型
有序集合类型
散列类型
集合类型
Redis的应用场景
缓存
任务队列
网站访问统计
数据过期处理
应用排行榜
分布式集群架构中的session分离
Redis简介
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,
同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区
官网 : https://redis.io/
学习网址:https://www.w3cschool.cn/redis/
Redis用途:1. 数据库 2. 缓存
基于内存存储的数据库
redis
memcache
redis安装
Redis从一开始就只支持Linux,后面虽然有团队搞出Window版本,但是我还是建议大伙安装到Linux中。
redis官方安装教程,但是比较简单
第一种方式是 在线安装
yum -y install wget
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
第二种是直接去reis官网下载离线安装包,上传到Linux中,推荐使用第二种 (在网速不是很快的情况下)。
reids服务端压缩包及客户端安装包 提取码:ua73
我就采用离线安装
第一步:下载及解压
最好把这些放在一个文件夹里,有利于操作
使用VMware 以及Xshell 下载及操作
yum install gcc-c++
等待它下载完成之后之后目录
tar -xvf redis-5.0.2.tar.gz(解压)
这里可以看到已经成功解压到目录下
第二步 :编译
cd redis-5.0.2/(进入目录)
make(编译)
第三步:修改配置文件
修改配置文件 redis.conf
redis-5.0.2 /redis.conf
将配置文件中的 daemonize 修改成 yes 。这是 开启守护进程,不开启的话,不能做其他操作
如何修改 :按住shift键+insert 键
#daemonize no
daemonize yes
启动 redis
可以操作如下(指定redis.conf)
./src/redis-server redis.conf
reids-cli 测试是否成功
./src/redis-cli (使用redis)
连接上后运行ping 命令。如果输出如下结果就代表成功了:
exit 退出
开放端口 (相当于在防火墙凿个洞,这比关闭防火墙还是要好的)
firewall-cmd --zone=public --add-port=6379/tcp --permanent
跟新防火墙规则
firewall-cmd --reload
防火墙列表
firewall-cmd --zone=public --list-ports
防火墙状态
systemctl status firewalld
启动防火墙
systemctl start firewalld
Redis客户端
可视化管理工具redis-desktop-manager安装与配置
-
配置远程登录
vi /etc/redis/redis.conf #编辑redis配置文件
#bind 127.0.0.1 #注释这一行(69行) -
配置密码登录
vi /etc/redis/redis.conf #编辑redis配置文件#找到下面这一行并去除注释,并添加密码(396行)
#requirepass foobared #修改前
requirepass 123456 #修改后注1:配置完成密码后,以后登录就密码按下面的命令进行登录
./redis-cli -h 127.0.0.1 -p 6379 -a 123456 -
重启redis或ubuntu
service redis-server restart
#reboot
使用客户端工具连接
表示连接成功
Redis 内存存储、持久化、集群
内存存储
** Redis支持五种数据类型**
常用: string(字符串),hash(哈希),list(列表),
不常用 :set(集合)及zset(sorted set:有序集合)
持久化
所有的数据都存在内存中,从内存当中同步到硬盘上,这个过程叫做持久化过程。
持久化操作,两种方式:rdb方式、aof方式,可以单独使用或者结合使用。
rdb持久化策略:
数据是保存在内存,数据是容易丢失的,读写速度快
内存发生改变的时间,有redis.conf中的设置有关
比如说redis存储了1000个key,当其中100key对应的值在60s发生了改变,那么久将redis与
mysql的数据进行同步一次。同步的机制,在redis.confg中进行设置
aof持久化策略
数据是以文件的形式存储
redis每改变内存中一条数据,就会将内存与mysql数据同步一次,并且记录日志。安全性更高,
数据不易丢失
RDB方式
RDB方式 Redis是默认支持的
优势:只有一个文件,时间间隔的数据,可以归档为一个文件,方便压缩转移(就一个文件)
劣势:如果宕机,数据损失比较大,因为它是没一个时间段进行持久化操作的。也就是积攒的数据比较多,一旦懵逼,就彻底懵逼了
AOF方式
AOF方式:将以日志,记录每一个操作
优势:安全性相对RDB方式高很多;
劣势:效率相对RDB方式低很多;
使用方法:
rdb持久化方法:在指定的时间间隔写入硬盘
aof方式:将以日志,记录每一个操作,服务器启动后就构建数据库。
配置可以禁用 持久化功能。
也可以同时使用两种方式。
redis集群
(单机多节点集群,多台Linux机器集群)主从模式
redis集群最少要三台主机(多台机器集群)
通常公司会至少使用6台(主从模式)
在不使用集群时:是将所有静态数据放到一台Linux主机的内存中。
当数据量过大,一台机器的内存不足。那么会采用多台机器进行分散存储,将多台机器进行集群。