新手如何从零开始配置Redis

1.下载Redis

首先你肯定得有redis是吧,那么哪里去下载redis组件呢?当然可以去redis官网下载,我图方便直接从github上下载了。url是 https://github.com/dmajkic/redis/downloads 。
在这里插入图片描述
然后我选了最新的那个。当然这里的版本大概率不是最新的,甚至可能比较老,但是因为是尝试了解,所以不是latest也没关系啦。

2.解压、了解组件

解压完你会看到下面这些组件:
在这里插入图片描述
redis-server.exe即为服务器,双击打开便开启服务,如下图所示:
在这里插入图片描述
redis-cli.exe是客户端,双击打开,如下图所示:
在这里插入图片描述
默认端口号都是6379。这时候你已经可以在客户端进行数据的存取操作啦。
在这里插入图片描述
如上图,就能进行简单的字符串的存取了。其他数据类型也都可以试一下,redis支持的数据类型也是蛮多的。
现在你是不是想,这么简单就能把数据永久保存了吗? NO。

3.Redis的持久化

上面的存取操作,只是在内存中进行,一旦你把服务端,也就是那个redis-server.exe关掉,刚刚保存的东西都不复存在了。那么怎样把数据保存到硬盘中呢?
Redis的持久化方式有两种,分别是RDB和AOF。两者有什么区别呢?区别在于他们不同的保存方式。

一、RDB 方式持久化的开启与配置:
————Redis 默认的持久化方式是 RDB ,并且默认是打开的。RDB 的保存有方式分为主动保存与被动保存。主动保存可以在 redis-cli 中输入 save 即可;被动保存需要满足配置文件中设定的触发条件,目前官方默认的触发条件可以在 redis.conf 中看到:

save 900 1
save 300 10
save 60 10000

其含义为:
服务器在900秒之内,对数据库进行了至少1次修改
服务器在300秒之内,对数据库进行了至少10次修改。
服务器在60秒之内,对数据库进行了至少10000次修改。

满足触发条件后,数据就会被保存为快照,正是因为这样才说 RDB 的数据完整性是比不上 AOF 的。

触发保存条件后,会在指定的目录生成一个名为 dump.rdb 的文件,等到下一次启动 Redis 时,Redis 会去读取该目录下的 dump.rdb 文件,将里面的数据恢复到 Redis。

除了save还有其他的保存方式么?
save 和 bgsave 保存

Redis 提供了save和bgsave这两种不同的保存方式,并且这两个方式在执行的时候都会调用rdbSave函数,但它们调用的方式各有不同:

save 直接调用 rdbSave方法 ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。

bgsave 则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。因为 rdbSave 在子进程被调用,所以 Redis 服务器在 bgsave 执行期间仍然可以继续处理客户端的请求。

save 是同步操作,bgsave 是异步操作。
bgsave命令的使用方法和save命令的使用方法是一样的。

shutdown保存

在持久化打开的情况下,shutdown也是可以保存数据的哦。

二、AOF方式持久化的开启与配置:

默认是不开启 AOF 的,如果想要启用则需要到 redis.conf 配置文件中开启,打开 redis.conf:
然后在文件中找到 appendonly 并将 no 改为 yes
在这里插入图片描述
即为开启了 AOF 方式的持久化。

设置同步方式

AOF 还有支持几种同步方式,它们分别是:
在这里插入图片描述
默认配置是 everysec,你可以根据需求进行调整,这里我将配置改成 always:
在这里插入图片描述
只要把everysec用"#“注释掉,并把always前面的”#"放开即可。

此外还需要把appendfilename的注释去掉:
在这里插入图片描述
Redis 设置有默认的文件名,在配置中显示为:
appendfilename “appendonly.aof”
你可以让其保持默认名字,也可以指定其他的文件名,比如:
appendfilename “RNGLetme.aof”

总结:综上,开启AOF需要将appendonly、appendfsync和appendfilename设置好并保存。然后重新启动 Redis 服务。

4.测试Redis持久化中遇到的问题

Q1:即使已经在redis.conf文件中把appendonly 从no改为了yes,把服务器重启了的情况也没有appendonly.aof文件时,必须要执行下面两条命令(在cmd中,redis的最后一层文件夹的目录中执行)

redis-cli config set appendonly yes
redis-cli config set save “”

这两个命令后才会在安装目录下出现appendonly.aof文件。

执行的第一条命令开启了 AOF 功能: Redis 会阻塞直到初始 AOF 文件创建完成为止, 之后 Redis 会继续处理命令请求, 并开始将写入命令追加到 AOF 文件末尾。

执行的第二条命令用于关闭 RDB 功能。 这一步是可选的, 如果你愿意的话, 也可以同时使用 RDB 和 AOF 这两种持久化功能。

Q2:明明有appendonly.aof文件,并且各个配置也设正确了呀,怎么还是没有见数据写进appendonly.aof文件呢,而且没有持久化操作?

在这里插入图片描述
此时你打开服务端你会发现你也可能有如上图一样warning。翻译一下他说的什么?是的。没有正确的读取到配置文件,你在配置文件中做的修改,自然也不会生效啦!

第一次配置到这的时候我也郁闷了好久,后来发现只要在cmd中启动服务,并且带上配置文件,像这样:
D:\redis>redis-server.exe redis.conf
就能正确读取到配置文件啦。

5.如何在Java中使用Redis

目前偶也只是入门啦,还只了解到如何简单应用。
一种是下载jar包,jedis-3.1.0.jar,另外如果要使用连接池的话,还要下载其他的jar包,不推荐这种方式。
最好使用maven,只需要在pom.xml中如下配置:
< dependency>
< groupId>redis.clients< /groupId>
< artifactId>jedis< /artifactId>
< version>3.1.0< /version>
< /dependency>
有了相关jar包以后,只需要import redis.clients.jedis.Jedis;即可。
然后就能像下面一样new到相关的对象,进行相应的操作啦!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值