首页>软件资讯>常见问题

常见问题

Redis一个强大的内存数据库

发布时间:2025-11-11 12:14:21人气:1


引言


在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供应商