Redis

本文详细介绍了Redis,包括其作为NoSQL的key-value特性、功能、企业缓存角色、安装部署及管理操作。重点讨论了Redis的数据持久化(RDB和AOF),数据类型如Strings、Hashes、Lists、Sets和SortedSets,以及发布订阅、事务、主从复制、Sentinel哨兵和Cluster集群的实现。同时,提到了Redis在缓存击穿、雪崩等场景的应用及API支持。
摘要由CSDN通过智能技术生成

NoSQL 产品(key-value)

RDBMS :MySQL,Oracle ,MSSQL,PG
NoSQL  :Redis,MongoDB,列存储存储相关
NewSQL----->分布式数据库架构(学习了MongoDB)

缓存产品介绍:
memcached (大公司会做二次开发)
redis
Tair

Redis教程—菜鸟教程

Redis功能介绍

数据类型丰富    (笔试、面试)*****
支持持久化      (笔试、面试) *****
多种内存分配及回收策略
支持弱事务            (面试)    ****
消息队列、消息订阅 
支持高可用                                 ****
支持分布式分片集群 (面试)   *****
缓存穿透\雪崩(笔试、面试)   *****
Redis API                  **

image

企业缓存产品介绍

Memcached:
优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash
多核结构、多线程读写性能高。
缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高
Redis:  优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高
缺点:多线程读写较Memcached慢
新浪、京东、直播类平台、网页游戏

memcache与redis在读写性能的对比
memcached 适合,多用户访问,每个用户少量的rw
redis     适合,少用户访问,每个用户大量rw 

Tair:
优点:高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
    缺点:单机情况下,读写性能较其他两种产品较慢

Redis使用场景介绍

Memcached:多核的缓存服务,更加适合于多用户并发访问次数较少的应用场景
Redis:单核的缓存服务,单节点情况下,更加适合于少量用户,多次访问的应用场景。
Redis一般是单机多实例架构,配合redis集群出现。



Redis安装部署:

软件下载链接: 提取码: tdhg

下载:
wget http://download.redis.io/releases/redis-3.2.12.tar.gz
解压:
上传至 /data
tar xzf redis-3.2.12.tar.gz
mv redis-3.2.12 redis

安装:
yum -y install gcc automake autoconf libtool make
cd redis
make

环境变量:
vim /etc/profile 
export PATH=/data/redis/src:$PATH
source /etc/profile 

启动:
redis-server & 

连接测试:
redis-cli 
127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> get num
10

image

Redis基本管理操作

基础配置文件介绍

mkdir /data/6379
cat > /data/6379/redis.conf<<EOF
daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename dump.rdb
EOF

redis-cli shutdown 
redis-server /data/6379/redis.conf 
netstat -lnp|grep 63

+++++++++++配置文件说明++++++++++++++
redis.conf
是否后台运行:
daemonize yes
默认端口:
port 6379
日志文件位置
logfile /var/log/redis.log
持久化文件存储位置
dir /data/6379
RDB持久化数据文件:
dbfilename dump.rdb
++++++++++++++++++++++++++++++++++++++
redis-cli
127.0.0.1:6379> set name zhangsan 
OK
127.0.0.1:6379> get name
"zhangsan"

redis安全配置

`redis默认开启了保护模式,只允许本地回环地址登录并访问数据库。`
禁止protected-mode
protected-mode yes/no (保护模式,是否只允许本地访问)

[root@db01 /data/redis]# redis-cli -h 10.0.0.51 -p 6379
10.0.0.51:6379> get alex

image

(1)Bind :指定IP进行监听
vim /data/6379/redis.conf
bind 10.0.0.51  127.0.0.1

(2)增加requirepass  {password}
vim /data/6379/redis.conf
requirepass 123456

----------验证-----
方法一:
[root@db03 ~]# redis-cli -a 123456
127.0.0.1:6379> set name zhangsan 
OK
127.0.0.1:6379> exit
方法二:
[root@db03 ~]# redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set a b
[root@db01 src]# redis-cli -a 123 -h 10.0.0.51 -p 6379
10.0.0.51:6379> set b 2
OK

image.png

在线查看和修改配置

CONFIG GET *
CONFIG GET requirepass    密码
CONFIG GET r*             以r开头的模糊查询
CONFIG SET requirepass 123  修改密码

redis持久化(内存数据保存到磁盘)

RDB和AOF详细介绍

RDB、AOF

RDB 持久化
    可以在指定的时间间隔内生成数据集的 时间点快照(point-in-time snapshot)。
    优点:速度快,适合于用做备份,主从复制也是基于RDB持久化功能实现的。
    缺点:会有数据丢失

127.0.0.1:6379> save    拍摄快照
OK

2. rdb持久化核心配置参数:
vim /data/6379/redis.conf
dir /data/6379
dbfilename dump.rdb
save 900 1       #900秒内只要有1个变更就做持RDB久化
save 300 10      #300秒内只要有10个变更就做RDB持久化
save 60 10000    #60秒内只要有1万个变更就做RDB持久化

3. 配置分别表示:
900秒(15分钟)内有1个更改
300秒(5分钟)内有10个更改
60秒内有10000个更改

AOF 持久化(append-only log file)

类似于mysql的 binlog

1. 介绍
    记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 
    AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。
    优点:可以最大程度保证数据不丢,可以把所有记录都记下来
    缺点:日志记录量级比较大

2. AOF持久化配置
appendonly yes        开关
刷写策略
appendfsync always    总是
appendfsync everysec  每秒
appendfsync no    

是否打开aof日志功能
每1个命令,都立即同步到aof 
每秒写1次
写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof.

vim /data/6379/redis.conf
appendonly yes
appendfsync everysec 
重启
redis-cli -a 123456 shutdown
redis-server /data/6379/redis.conf 

面试:
redis 持久化方式有哪些?有什么区别?
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog


※Redis数据类型(笔试):

介绍

String :      字符类型
Hash:         字典类型
List:         列表     
Set:          集合 
Sorted set:   有序集合

image

string : 计数器应用 , session 共享
hash : MySQL数据库缓存,canal mysql 自动 redis
list : 朋友圈
set : 集合操作 : 共同好友,共同喜好、二度好友等功能,
sortset : 排行榜

KEY的通用操作

KEYS *   keys a  keys a*    查看已存在所有键的名字   ****
TYPE                        返回键所存储值的类型     ****
EXPIRE\ PEXPIRE             以秒\毫秒设定生存时间       ***
TTL\ PTTL                   以秒\毫秒为单位返回生存时间 ***
PERSIST                     取消生存时间设置            ***
DEL                         删除一个key
EXISTS                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值