NoSQL之Redis配置与优化

Redis简介

        Redis基于内存运行并支持持久化

        采用key-value(键值对)的存储方式

        优点

                具有极高的数据读写速度

                支持丰富的数据类型

                支持数据的持久化

                原子性

                支持数据备份

Redis持久化

        持久化概述

                Redis是运行在内存的,内存中的数据断电丢失

                        为了能够重写Redis数据,或者防止系统故障,需要将Redis中的数据写入到磁盘空间中,即持久化

                持久化分类

                        RDB方式:创建快照的方式获取某一时刻Redis中搜有数据的副本

                        AFO方式:将执行的写命令写到文件的末尾,以日志的方式来记录数据的方式

                RDB持久化

                        Redis的默认持久化方式

                        默认文件名dump.rdb

                        触犯条件

                        优缺点

                                适合大规模的数据恢复

                                如果业务对数据完整性和一致性要求不高,RDB是很好的选择

                                数据完整性和一致性不好

                                备份时占用内存

                aof持久化

                        Redis默认不开启

                        弥补RDB的不足

                        采用日志的形式来记录每个写操作,并追加到文件中

                        Redis从其会根据日志文件的内容将写指令从前到后执行一次

实验案例

        基础环境

系统版本配置主机名IP地址
CentOS 7.92C4GRedis192.168.86.120

                关闭防火墙

systemctl stop firewalld systemctl disable firewalld

                关闭安全内核机制

setenforce 0 sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config

                修改主机名

hostanmectl set-hostname Redis

        安装Redis

                安装编译环境

[root@redis ~]# yum -y install gcc gcc-*

[root@redis ~]# tar zxf redis-4.0.9.tar.gz

[root@redis ~]# cd redis-4.0.9

[root@redis redis-4.0.9]# make && make PREFIX=/usr/local/redis install

[root@redis redis-4.0.9]# echo $?

0

[root@redis redis-4.0.9]# cd utils/

[root@redis utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/

[root@redis utils]# sh install_server.sh

                Redis常用命令

# 停止命令

[root@redis utils]# /etc/init.d/redis_6379 stop

# 启动命令

[root@redis utils]# /etc/init.d/redis_6379 start

# 查看服务状态命令

[root@redis utils]# /etc/init.d/redis_6379 status

# Redis测试命令

[root@redis utils]# redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000

# -h 主机 -p 端口 -c 并发数请求数 -n 请求数

                Redis数据库命令

# 连接到数据库

[root@redis ~]# redis-cli

# 创建键值对

127.0.0.1:6379> set name zhangsan

# 查看键值对

127.0.0.1:6379> get name

# 查看所有的键值对

127.0.0.1:6379> keys *

# 查看指定的键值对,*表示任意字符,多个字段

127.0.0.1:6379> keys na*

# 查看指定的键值对,?表示任意字符,一个字段

127.0.0.1:6379> keys na??

# 判断这个键值对是否存在

127.0.0.1:6379> exists name

# 删除键值对

127.0.0.1:6379> del name

# ex表示在创建键值对的时候设置一个过期时间,超过这个时间这条数据自动淘汰

127.0.0.1:6379> set name list ex 10

# expire表示在已经添加的数据添加一个过期时间

127.0.0.1:6379> expire name 5

# dbsize表示查看几个键值对

127.0.0.1:6379> dbsize

# Redis有0-15个数据库,select切换数据库,各个数据库之间相互独立存在,数据不相同

127.0.0.1:6379> select 15

# Redis数据库之间虽然不相通,但是可以移动数据

127.0.0.1:6379> move name 10

# 清空当前库的所有数据

127.0.0.1:6379[10]> flushdb

# 清空所有库的数据

127.0.0.1:6379[10]> flushall

                RDB持久化配置

# 备份

[root@redis ~]# redis-cli

127.0.0.1:6379> set name '张三'

OK

127.0.0.1:6379> get name

"\xe5\xbc\xa0\xe4\xb8\x89"

127.0.0.1:6379> save

OK

127.0.0.1:6379> exit

[root@redis ~]# /etc/init.d/redis_6379 stop

[root@redis ~]# cd /var/lib/redis/6379/

[root@redis 6379]# mkdir /bak

[root@redis 6379]# mv dump.rdb /bak/

[root@redis 6379]# /etc/init.d/redis_6379 start

[root@redis 6379]# redis-cli

127.0.0.1:6379> keys *

(empty list or set)

127.0.0.1:6379> exit

# 恢复备份

[root@redis 6379]# /etc/init.d/redis_6379 stop

[root@redis 6379]# rm -rf dump.rdb

[root@redis 6379]# cp /bak/dump.rdb ./

[root@redis 6379]# /etc/init.d/redis_6379 start

[root@redis 6379]# redis-cli

127.0.0.1:6379> keys *

"name"

127.0.0.1:6379> get name

"\xe5\xbc\xa0\xe4\xb8\x89"

127.0.0.1:6379> exit

                aof持久化配置

[root@redis ~]# vi /etc/redis/6379.confexit

# 创建要备份资料

[root@redis ~]# redis-cli

127.0.0.1:6379> set kgc kcs62

OK

127.0.0.1:6379> get kgc

"kcs62"

127.0.0.1:6379> set name zhangsan

OK

127.0.0.1:6379> get name

"zhangsan"

# 备份

[root@redis ~]# cd /var/lib/redis/6379/

[root@redis 6379]# /etc/init.d/redis_6379 stop

[root@redis 6379]# mv appendonly.aof /bak/

[root@redis 6379]# /etc/init.d/redis_6379 start

[root@redis 6379]# redis-cli

127.0.0.1:6379> keys *

(empty list or set)

127.0.0.1:6379> exit

# 恢复备份

[root@redis 6379]# cp /bak/appendonly.aof ./

[root@redis 6379]# /etc/init.d/redis_6379 restart

[root@redis 6379]# redis-cli

127.0.0.1:6379> keys *

"kgc"

"name"

127.0.0.1:6379> exit

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值