热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

redis清空缓存_redis简单安装学习

redis介绍Redis是noSql也就是非关系型数据库,可以用来做缓存,缓存就是在内存中存储的数据备份,当数据没有发生本质改变的时候,我们就不让数据的查询去数据库

redis 介绍

Redis是noSql也就是非关系型数据库,可以用来做缓存,缓存就是在内存中存储的数据备份,当数据没有发生本质改变的时候,我们就不让数据的查询去数据库进行操作,而去内存中取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度比去数据库查询要快一些,这样同时又提高了效率。

一、redis单实例搭建

1. 下载redis-5.0.4.tar.gz(最新稳定版本)

2. 解压源码进入目录

3. make

4. make test测试编译情况(可能出现:need tcl >8.4这种情况,解决方法yum install tcl)

5. 安装 make PREFIX=/usr/local/redis install

6. make install之后,redis目录下的bin会有如下几个文件

redis-benchmark 性能测试工具

redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复)

redis-check-rdb 快照文件检测工具,效果类上

redis-cli 客户端

redis-server 服务端

a99946ddec1f81994fbf390de5ee14f1.png

7. 复制配置文件

cp /redis-5.0.4/redis.conf /usr/local/redis

38956130f18471ba3b35ace5f1f1e3b2.png

8. 编辑vim redis.conf

注释掉 bind 127.0.0.1 这个是 设置redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求。

f9bf7228a90673a632aadb2ba22dbcae.png

将daemonize no 改为yes 让redis 以后台服务形式运行。

b2388dfe880e85a29ba254b2706c4d83.png

9. ./bin/redis-server redis.conf 启动redis

79ac51bb3e69df555c9c14357008d4a9.png

./bin/redis-cli 客户端连接

a6c6c2c42848397f332e1ca29768634d.png

二、redis的三种集群方式

1. redis主从集群配置

复制 redis.conf 为redis6380.conf

编辑 vim redis6380.conf

将端口改6380 并设置为6379的端口从服务器(原本使用的是slaveof,但因为有人提出slave是奴隶的意思冒犯到了别人就改成看了replicaof)。

a46bb72e8d84e359f04082b260ec4bc3.png
7a13d598c634a2443c653596b221e29c.png

如果主服务器设置了密码如requirepass yhd123 则yhd123就是服务器密码(这里并没有设置密码),那从服务器就得设置masterauth yhd123,设置从服务器为只读replica-read-only yes。

882467ed2a9036713fd0ef7fa41c1ce6.png
1d8d3404e8440771538edc1d43285ced.png
056c7dcf8196e6d1e79c2b0e5b1b33db.png

启动redis 服务,用客户端连接6380,输入info ,会发现6380端口的角色role是slave。而6379端口的role是master,并且有一个slave。

6666eaf5424ab278ab23061220518996.png
f452cd1c2cef8234e45e48fd86b2d850.png
497b35695c4d3826ecc3c6a4ca815a49.png
9eeeb1520f5ee6923da2504646b35242.png

2. 哨兵主从集群配置

因为主从集群的情况下 如果master突然挂掉,除非手动将slave设置为master,再将其他slave连接到新的master,否则整个集群都不再工作,为了保证在master挂掉的情况下,集群继续工作,需要用到哨兵模式sentinel自动设置master并且slave连接上新master。

配置哨兵。

cp /usr/local/redis-5.0.4/sentinel.conf /usr/locla/redis

编辑 vim sentinel.conf 设置后台服务运行

be5944e3158d34211779f46ceefd2030.png

当2个sentinel实例都认为master失效时,正式失效。

f0d03ea2570121d956a34b0efc3568f4.png
835590faa7d5be3a01d856e45f2dd924.png

启动./bin/redis-server sentinel.conf --sentinel 如需配置哨兵集群,按以上方式使用多个配置文件监控同一个主节点即可。

三、redis-cluster 多主多从集群配置

编辑 vim redis.conf

0f8d9110802f6219e0addadf3d6db447.png

cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败。

创建6个实列,我这里是3台服务器 2个端口6个实例,然后将每个实例启动会生产节

点nodes-*.conf文件。

d5ab56555c622d0b14c17136a3381c08.png

执行命令创建命令redis-cli --cluster create ip:6379 ip:6380 ip1:6379 ip1:6380 ip2:6379 ip2:6380 --cluster-replicas 1

创建多主多从必须有 --cluster-replicas 1 ,不然就是6个master。

用redis客户端连接集群./bin/redis-cli -c输入命令查看集群信息。

查看集群节点cluster nodes,会看到对应master-slave,这样集群就搭建完毕了。任一主节点故障以后,从节点都会变为主节点,如果所有主从节点都故障则集群失效。

a2adee6ceff86f8b5ad61a793dcd0f3b.png

四、备份(持久化)

1. rdb持久化

save 900 1 // 900内,有1条写入,则产生快照

save 300 1000 // 如果300秒内有1000次写入,则产生快照

save 60 10000 // 如果60秒内有10000次写入,则产生快照

(这3个选项都屏蔽,则rdb禁用)

c5a868347b18492b6c5bbf16cd5dbe24.png

stop-writes-on-bgsave-error yes // 后台备份进程出错时,主进程停不停止写入?

rdbcompression yes // 导出的rdb文件是否压缩

Rdbchecksum yes // 导入rbd恢复时数据时,要不要检验rdb的完整性

dbfilename dump.rdb //导出来的rdb文件名

dir ./ //rdb的放置路径

fe7c0e3bf1f7cec6551b1383a30693b3.png

2. aof持久化

appendonly no # 是否打开 aof日志功能

Appendfilename #导出来的aof文件名

2d63fa7fed0432120378eff3a269f535.png

appendfsync always # 每1个命令,都立即同步到aof. 安全,速度慢

appendfsync everysec # 折衷方案,每秒写1次

appendfsync no # 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快

13934eae7ffe91630d2ce9363004da55.png

no-appendfsync-on-rewrite no: # 正在导出rdb快照的过程中,要不要停止同步aof

auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写

auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写

17326f194df6417db90066c0d18c782b.png

在集群里面只要一启动,只要rdb文件和aof没有丢失便会自动恢复,集群里面设置的备份方式为主aof 从 rdb+aof 。

五、运维

1. 在dump rdb过程中,aof如果停止同步,所有的操作缓存在内存的队列里, dump完成后,统一操作。

2. aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里.以解决 aof日志过大的问题。

3. 如果rdb文件,和aof文件都存在,优先用aof来恢复数据。

4. 恢复时rdb快,因为其是数据的内存映射,直接载入到内存,而aof是命令,需要逐条执行。

5. 运维的一些命令

BGREWRITEAOF 后台进程重写AOF

BGSAVE 后台保存rdb快照

SAVE 保存rdb快照

LASTSAVE 上次保存时间

Slaveof master-Host port , 把当前实例设为master的slave

Flushall 清空所有库所有键

Flushdb 清空当前库所有键

Showdown 关闭服务器

注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器

然后手工编辑aof文件,去掉文件中的 “flushall ”相关行,然后开启服务器,就可以导入回原来数据.如果,flushall之后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失.

Slowlog 显示慢查询

由slowlog-log-slower-than 10000,来指定多慢。(单位是微秒)

由 slowlog-max-len 128 ,来做限制服务器储存多少条慢查询的记录。

Info [Replication/CPU/Memory..]

查看redis服务器的信息
6.Redis运维时需要注意的参数

内存

# Memory

used_memory:859192 数据结构的空间

used_memory_rss:7634944 实占空间

mem_fragmentation_ratio:8.89 前2者的比例,1.N为佳,如果此值过大,说明redis的内存的碎片化严重,可以导出再导入一次.

主从复制

# Replication

role:slave

master_host:192.168.1.128

master_port:6379

master_link_status:up

持久化

# Persistence

rdb_changes_since_last_save:0

rdb_last_save_time:1375224063

fork耗时

#Status

latest_fork_usec:936 上次导出rdb快照,持久化花费微秒

注意: 如果某实例有10G内容,导出需要2分钟,

每分钟写入10000次,导致不断的rdb导出,磁盘始处于高IO状态.

慢日志

config get/set slowlog-log-slower-than

CONFIG get/SET slowlog-max-len

slowlog get N 获取慢日志


运行时更改master-slave

修改一台slave(设为A)为new master

1) 命令该服务不做其他redis服务的slave

命令: slaveof no one

2) 修改其readonly为yes

其他的slave再指向new master A

1) 命令该服务为new master A的slave

命令格式 slaveof IP port


推荐阅读
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • Git命令基础应用指南
    本指南详细介绍了Git命令的基础应用,包括如何使用`git clone`从远程服务器克隆仓库(例如:`git clone [url/path/repository]`)以及如何克隆本地仓库(例如:`git clone [local/path/repository]`)。此外,还提供了常见的Git操作技巧,帮助开发者高效管理代码版本。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
author-avatar
mobiledu2502920033
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有