redis基础,以及搭建

基础理论

1,redis是非关系型数据库,是内存或者缓存数据库,以K-V键值对形式存在,数据保存在内存中,单数会定期将数据写入磁盘中,属于存储高热数据库,
2,redis的优点
支持内存缓存,有极高的数据读写速度
支持持久化保存,可以存储队形,数据类型更多,支持集群,分布式
支持对垒,支持数据备份、
具有原子性
支持丰富的数据类型:string 字符串,list 列表,set 集合,hash散列值,ordered set 有序集合。
3,非关系数据库和关系数据库区别
一,最大的区别在扩展方式是没支持日益增长的需求,SQL是纵向扩展,提高处理能力,是处理速度更快,NOSQL是横向扩展,数据库存储是分布式的,数据库扩展可以通过资源持添加更多数据库节点来分二,存储方式不通,关系型是依赖关系模型E-R图,以表格方式存储数据,非关,出了表哥之外,通常那会以大块的形式组合在一起存储数据
三,对植物的支持不同,关系型适合高事务性要求和需要控制执行计划的任务,非关,稍微若是,其价值高于扩展性和大数据量处理
4,redis单进程模型,redis在一个服务器上可以同时启动多个进行,主要靠主进行处理的执行效率,生产环境会根据需求决定开启多少个redis进程
建议两个。

radis部署

关闭防火墙,核心防护
安装依赖环境
yum -y install gcc gcc-c++ make
make

[root@redis redis]# tar zxvf redis-5.0.7.tar.gz -C /opt	'//redis源码包可以直接到官网下载'
[root@redis redis]# cd /opt/redis-5.0.7/
[root@redis redis-5.0.7]# make	'//直接进行make'
[root@redis redis-5.0.7]#  make PREFIX=/usr/local/redis/ install	'//指定redis目录并安装

配置执行脚本

[root@manager utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]      '//回车
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]    //回车
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]    //回车
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]    //回车
Selected default - /var/lib/redis/6379
Please select the redis executable path [] /usr/local/redis/bin/redis-server   // 指定目录
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/redis/bin/redis-server
Cli Executable : /usr/local/redis/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
[root@manager utils]# 

安装启动成功

优化redis

ln -s /usr/local/redis/bin/* /usr/local/bin

[root@manager utils]# ln -s /usr/local/redis/bin/* /usr/local/bin
[root@manager utils]# netstat -ntap |grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      22045/redis-server  
[root@manager utils]# /etc/init.d/redis_6379 stop
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
[root@manager utils]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@manager utils]# netstat -ntap |grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      22148/redis-server  
tcp        0      0 127.0.0.1:6379          127.0.0.1:60066         TIME_WAIT   -  

配置监听端口,启动服务
vim /etc/redis/6379.conf
在这里插入图片描述
/etc/init.d/redis_6379 restart 重启服务
在这里插入图片描述

redis命令工具

redis-server :启动redis工具
redis-benchmark:用于检查redis本机运行效率
redis-check-aof:修复AOF持久化文件
redis-check-rdb: 修复RDB持久化文件

redis-cli -h 192.168.17.20 -p 6379 用于登录
-h:指定主机
-p:指定端口
-a:指定密码

压测

在这里插入图片描述

在这里插入图片描述

基础操作
[root@manager utils]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> set username abc      //创建表和把内容
OK
127.0.0.1:6379> set user abc     //创建
OK
127.0.0.1:6379> keys *    //查看所有键
1) "username"
2) "myset:__rand_int__"
3) "mylist"
4) "key:__rand_int__"
5) "counter:__rand_int__"
6) "user"
127.0.0.1:6379> get user    //读取指定键的内容
"abc"
127.0.0.1:6379> exists user   //查看是否存在
(integer) 1
127.0.0.1:6379> del user    ///删除
(integer) 1
127.0.0.1:6379> keys *   
1) "username"
2) "myset:__rand_int__"
3) "mylist"
4) "key:__rand_int__"
5) "counter:__rand_int__"
127.0.0.1:6379> rename username aaa   //重命名
OK
127.0.0.1:6379> keys *
1) "myset:__rand_int__"
2) "aaa"
3) "mylist"
4) "key:__rand_int__"
5) "counter:__rand_int__"
127.0.0.1:6379> exit 
[root@manager utils]# 

将第0个库的aaa移植到第12个库中

[root@manager utils]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> select 11
OK
127.0.0.1:6379[11]> keys *
(empty list or set)
127.0.0.1:6379[11]> select 0
OK
127.0.0.1:6379> keys *
1) "myset:__rand_int__"
2) "aaa"
3) "mylist"
4) "key:__rand_int__"
5) "counter:__rand_int__"
127.0.0.1:6379> move aaa 11
(integer) 1
127.0.0.1:6379> select 11
OK
127.0.0.1:6379[11]> keys *
1) "aaa"
127.0.0.1:6379[11]> 

redis的持久化

概述:
redis运行在内存中,数据容易丢失,防止系统故障,要把redis写到磁盘空间,就是持久化,永久保存数据
分类“
RDB方式:创建快照的方式获取某一时刻Redis中所有数据的副本
AOF方式:将执行的写命令写到文件的末尾,以日志的方式来记录数据的变化

rdb持久化

默认的方式,默认文件名为dump.rdb
触发条件:

在指定的时间间隔内,执行指定次数的写操作(配置文件控制)
执行save或者是bgsave(异步)命令
执行flushall命令,清空数据库所有数据
执行shutdown命令,保证服务器正常关闭且不丢失任何数据
优缺点

适合大规模的数据恢复
如果业务对数据完整性和一致性要求不高,RDB是很好的选择
数据的完整性和一致性不高
备份时占用内存
通过RDB文件恢复数据

将dump.rdb文件拷贝到redis的安装目录的bin目录下,重启redis服务即可
配置:

[root@redis 6379]# vim /etc/redis/6379.conf 	'//修改配置文件'
    '//搜索save,找到如下'
save 900 1	'//900秒之内至少一次写操作'
save 300 10	'//300秒内至少10次写操作'
save 60 10000	'//60秒内至少10000次写操作'
'//只要满足其一都会触发快照操作,注释所有的save项表示关闭RDB'
dbfilename dump.rdb	'//RDB文件名称'
dir /var/lib/redis/6379	'//RDB文件路径'
rdbcompression yes	'//开启了压缩功能

AOF持久化

AOF是将操作追加到问价中,文件内容冗余越来越多,AOF文件的大小想超过锁设定的阈值,就会进行压缩
redis的fork出一个新的进程,读取内存中的数据,从新写到一个临时文件汇总,最后替换原理的aof

vim /etc/redis/6379.conf 
no-appendfsync-on-rewrite no	'//在日志进行BGREWRITEAOF时, 如果设置为yes表示新写操作不进行同步fsync,只暂存在缓冲区里,避免造成磁盘I0操作冲突,等重写完成后在写入。redis中默认为no'
auto-aof-rewrite-percentage 100	'//当前AOF文件大小是上次日志重写时AOF文件大小两倍时,发生BGREWRITEAOF操作'
auto-aof-rewrite-min-size 64mb	'//当前AOF文件执行BGREWRITEAOF命令的最小值,避免刚开始启动Reids时由于文件尺寸较小导致频繁的BGREWRITEAOF.当AOF文件到达64M的时候,发生BGREWRITEAOF操作'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值