Redis 基础部分

Redis的官方网站

1 | http://www.redis.cn/

在这里插入图片描述

1、安装依赖包

1 | yum install gcc tcl   

2、下载源码包

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

3、解压安装

1 | tar -xf redis-4.0.10.tar.gz  -C /usr/local
2 | cd redis-4.0.10
3 | mv redis-4.0.10 redis
4 | make && make install

4、配置redis

1 | mkdir /etc/redis
2 | cd redis
3 | cp redis.conf /etc/redis/6379.conf

配置centos7 systemd 管理 redis 服务
1.在/lib/systemd/system目录下创建一个脚本文件redis.service,里面的内容如下:

[root@ela2 ~]#  vim /lib/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf  --daemonize no
ExecStop=/usr/local/bin/redis-cli -p 6379 shutdown

[Install]
WantedBy=multi-user.target

[Unit] 表示这是基础信息配置块
Description 是描述
After 开启自启动时候的顺序, 指定的服务必须先于次此服务启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息配置块
Type 指定启动服务的类型, simple 是默认的方式
EnvironmentFile 指定服务启动时用到的配置文件
ExecStart 是启动服务的命令
ExecStop 是停止服务的指令
[Install] 表示这是是安装信息配置块
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

授权在主机启动的时候同时启动服务

1 | systemctl enable redis 

5.使用使用 systemctl 操作

刷新配置,让 systemd 识别刚刚添加的 redis 服务

1 | systemctl daemon-reload

启动服务

1 |  systemctl start redis

关于配置文件中的配置
设置监听地址

1 | vim /etc/redis/6379.conf
2 | bind 0.0.0.0

bind 参数若都注释掉,则会监听服务器上的所有 ip
可以指定一个或者多个,打开注释。
注意此配置项可能在 71 行左右。默认是 bind 127.0.0.1

检查并测试

检查默认端口 6379 是否监听
在这里插入图片描述
手动使用命令指定配置文件启动服务

1 | /usr/local/bin/redis-server /etc/redis/6379.conf

这种方式执行,默认 Redis 服务侯会在前台运行。

设置使用守护进程都方式运行服务
需要编辑配置文件 /etc/redis/6379.conf

1 | daemonize yes   # 守护进程的方式启动服务

客户端指定端口访问

redis-cli -p 6379

手动停止服务

redis-cli -p 6379 shutdown

假如重启后出现如下错误信息,就按照提示操作

1 | 1044:M 27 Feb 14:47:21.993 # Server initialized
2 | 1044:M 27 Feb 14:47:21.993 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
3 | 1044:M 27 Feb 14:47:21.993 # Short read or OOM loading DB. Unrecoverable error, aborting now.
4 | 1044:M 27 Feb 14:47:21.993 # Internal error in RDB reading function at rdb.c:1666 -> Unexpected EOF reading RDB file

解决方法

1 | echo "vm.overcommit_memory = 1"  >> /etc/sysctl.conf
2 | sysctl -p

问题二

1 | error, aborting now.
2 | 1344:M 27 Feb 14:59:33.466 # Internal error in RDB reading function at rdb.c:1666 -> Unexpected EOF reading RDB file

移动 dump.db 文件或者更名,可以删除。

1 | rm -rf dump.rdb

一、持久化存储

1. 持久化存储的方式介绍
Redis 分别提供了 RDB 和 AOF 两种持久化机制:

RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中。

AOF 则以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的。

  1. RDB
    a. 什么是RDB
    和 MySQL 中的 mysqldump 差不多一个道理。
    在这里插入图片描述
    b. 什么情况下会触发 RDB

第一种情况,主动执行 save 命令(同步,阻塞 ,就是save 命令执行完毕后才能执行后续的其他命令操作)

在这里插入图片描述
阻塞
在这里插入图片描述
保存 RDB 文件的策略
每次创建新的文件,并且替换原来旧文件(假如存在旧的文件)

第二种情况,主动执行 bgsave 命令 (异步,非阻塞 )

在这里插入图片描述
文件策略和 save 相同

第三种情况,自动触发

自动触发,就是通过对 Redis 的配置文件重相关选项的修改,当达到某个配置好的条件后,自动生成 RDB 文件
,其内部使用的是 bgsave 命令。
配置文件中相关选项的默认值如下表:
在这里插入图片描述
每次检查都会建立一个新的检查点,以便用于下次检查作为参考信息。

关于 RDB 文件的配置信息

默认文件名
dbfilename dump.rdb

默认文件保存位置
dir ./

假如 bgsave 执行中发生错误,是否停止写入,默认是 yes , 表示假如出错,就停止写入。
stop-writes-on-bgsave-error yes

是否使用压缩|
rdbcompression yes

是否进行数据的校验
rdbchecksum yes
建议的最佳配置
关闭自动生成 RDB 文件
在配置文件中注释掉如下内容

#save 900 1
#save 300 10
#save 60    10000

使用不同端口号进行区分,因为,有可能会在同一台主机上开启多个 Redis 实例。
防止多个实例产生的数据信息写到一个文件中。
dbfilename dump-${port}.rdb

指定一个大硬盘的路径
dir /redis_data

假如出现错误,停止继续写入
stop-writes-on-bgsave-error yes

采用压缩
rdbcompression yes

进行校验
rdbchecksum yes

实验

修改配置文件中的相关选项,使其成为如下内容中显示的值:

假如你的 Redis 服务器允许客户端可以从非本机访问,应该在配置文件中,把 protected-mode 的值设置问 no。

这样的话,客户端就可以从其他主机访问 Redis 服务器了,并且不需要密码。

重启服务后,在 Rdis 命令行客户端中输入 save 命令。

[root@s1 ~]# redis-cli
127.0.0.1:6379> save
OK

该命令将在配置文件重配置的指定目录中创建 dump-6379.rdb文件。

恢复数据时,只需要保证此文件完好,并且在配置文件中指定的目录下即可。这样 Rdis 启动时就会把此文件中的数据恢复到当前的服务器中。

bgsave 命令和 save基本一样,就是 bgsave 命令不会产生阻塞

127.0.0.1:6379> bgsave
Background saving started
127.0.0.1:6379>

查看当前服务器的数据文件目录

127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis基础数据类型包括字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(zset)这五种。其中,字符串数据类型用于将一个字符串映射到另一个字符串,可以用于缓存HTML片段或页面等用例。散列数据类型用于存储字段和值的映射关系,常用于存储对象的属性和值。列表数据类型是一个有序的字符串列表,可用于实现消息队列、最新动态等功能。集合数据类型是一个无序的字符串集合,可以进行集合运算,如并集、交集等。有序集合数据类型是一个有序的字符串集合,每个字符串关联一个分数,可以根据分数进行排序和范围查询。掌握这五种基本数据结构的使用和应用场景是Redis知识最基础也是最重要的部分。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Redis(三)基础Redis五大基础数据类型](https://blog.csdn.net/weixin_46618592/article/details/126873542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Redis基本数据类型](https://blog.csdn.net/advjj_058229/article/details/114222427)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值