引言
在web发展的初期,关系型数据库的被受大众关注,因为那时候的站点基本访问以及并发不高,交互也较少。但是近几年,随着网络的日趋发达,数据量的爆炸的今天,关系型数据在性能上出现了一些神奇的问题。导致在大数据的时代,我们必须集中去解决极大问题:
低延迟的读写速度
能够完美支撑海量的数据以及流量
大数据集群的管理
运营成本的考量
基于上述的问题的研究,NoSql应运而生,本质非关系型数据库。
其中Redis以及MongoDB是当前使用最广泛的NoSql技术,就redis技术而言,它的性能十分优越,可以支持每秒十几万次的读/写操作,其性能远超数据库,并且还支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中,更让人欣慰的是它还支持一定的事务能力,这保证了高并发的场景下数据的安全和一致性。
第一章 redis是什么?
Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:
基于内存运行,性能高效
支持分布式,理论上可以无限扩展
key-value存储系统
开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
redis支持各种不同方式的排序
redis并且可以执行memcached不一样的操作,周期性的把更新的数据写入磁盘或者修改操作写入追加的记录文件
Redis安装步骤
第一步 准备GCC编译环境
由于redis的编译安装需要GCC的编译环境,需要服务器默认提供环境,但是一般情况下,以测试的7.X默认会提供GCC4.8.5的版本编译,如果要安装高版本的Redis,需要提高GCC的版本。
如果服务器有外网环境可以直接在线获取gcc。
yum install gcc
第二步 准备安装包
wget https://download.redis.io/releases/redis-6.2.4.tar.gz
tar xzf redis-6.2.4.tar.gz
cd redis-6.2.4
第三步 编译安装
make -- 只是做编译处理
!-- 如果没有准备好c语言的编译,会报错,需要注意。
make intall 进行安装。-- 默认装到/usr/local/bin 普通用户下不能使用这个
make PREFIX=/home/用户名/某个文件夹 install (PREFIX必须大写)
第四步 修改配置文件
bind -- ip地址
daemonize yes -- 后台运行
logfile "/data/redis6/logs/redis.log" -- 日志保存位置
pid ""
dir /data/redis6/data/ -- 数据保存目录
maxmemory 128MB -- 最大内存数(可不改)
io-threads 3 -- IO线程数默认3/4(核心数)
*protected-mode设置为yes的情况下,为了我们的应用服务可以正常访问Redis,我们需要设置Redis的bind参数或者密码参数requirepass。*
文件解释
redis-benchamark:性能测试工具,可以在本地运行
redis-check-aof:修复有问题的AOF文件,
redis-check-rdb:修复有问题的RDB文件,
redis-sentinal:redist集群使用
redis-server:redis服务器启动命令
redis-cli:客户端,操作入口
正常启动只是,在当前终端启动,所以我们需要改成后台启动。
-- 复制一下redis.conf到/etc/redis中
cp redis.conf /etc/redis
-- 修改conf文件中daemonize中选项
3. redis-server /etc/redis.conf
主从复制
附属:添加配置
protected-mode no # 保护模式
slaveof 主节点IP 端口
# 关闭防火墙
systemctl stop firewalld.service
哨兵模式
sentinel monitor mymaster 10.0.100.157 6379 2 #这里指的是监视哪一个redis集群,2代表的是主服务器挂了那么3个哨兵中2个确定挂了就可以随机选一个当主节点
#注释
sentinel deny-scripts-reconfig yes
# 启动服务
redis-server sentinel.conf --sentinel &
#查看哨兵消息
redis-cli -p 26379 INFO Sentinel
redis的集群搭建
集群模式可以实现对redis的水平扩容。通过分区来提供一定程序的可用性。
pidfile "/var/run/redis_6379.pid"
port 6379
dbfilename "dump6379.rdb"
masterauth "123456"
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
启动所有节点的redis实例。
建立集群关系
redis-cli --cluster create --cluster-replicas 1 192.168.1.180:6379 192.168.1.180:6380 192.168.1.180:6381 192.168.1.180:6389 192.168.1.180:6390 192.168.1.180:6391 -a 123456
集群化连接
redis-cli -c -p 6379 -a 123456
上一条:Redis解析内存数据缓存解决方案
下一条:购软平台是redis供应商