微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NoSQL------Redis

缓存产品介绍:
性能高,数据结构简单

1.Redis功能介绍

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

2.企业缓存产品介绍

Memcached:
优点:高性能读写、单一数据类型、支持客户端分布式集群、一致性hash、多核结构、多线程读写性能

缺点: 无持久化、节点故障可能会出现缓存穿透、分布式需要客户端实现、跨机房数据困难、架构扩容复杂

Redis
优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线成读写性能极高(单个用户提交多个任务性能极高,当用户连接超过五百、性能直线下降,可以通过多实例解决

缺点:多线程读写较Memcached慢

Memcached与Redis在读写性能的对比
Memcached适合,多用户访问,每个优化少量的读写
Redis 适合,少用户访问,每个用户大量的读写
Tair:
优点:高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
缺点:单机情况下,读写性能较其他两种产品较慢

3.Redis使用场景介绍

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

4.Redis安装部署

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

5.Redis基本管理介绍

5.1基础配置文件介绍

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"
5.2 redis安全配置
redis认开启了保护模式,只允许本地回环地址登录并访问数据库。

Bind :指定IP进行监听.增加requirepass  {password}
vim /data/6379/redis.conf
bind 10.0.0.51  127.0.0.1
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
5.3 在线查看和修改配置
CONfig GET *
CONfig GET requirepass
CONfig GET r*
CONfig SET requirepass 123
5.4 Redis持久化(将内存中的数据保存到磁盘中)

RDB、AOF

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

rdb持久化配置参数:

vim /data/6379/redis.conf
save 900 1
save 300 10
save 60 10000

配置分别表示:
900秒内有一个更改
300秒内有10个更改
60秒内有10000个更改

说明:
    正常shutdown redis自动触发save
    crash redis 异常关闭,不会触发save
AOF持久化(append-only log file)
    类似于MysqLbinlog日志,会记录所有修改操作的内容

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

AOF 持久化配置
appendonly yes    #打开AOF持久化功能

三个选项:
    appendfsync always    #每次变更都会保存记录
    appendfsync everysec    #每秒钟记录一次
    appendfsync no        #由系统自动决定

6.Redis数据类型

6.1 介绍

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

6.2 key的通常操作

KEYS *             查看已存在所有键的名字
TYPE               返回键所存储值的类型
EXPIRE/PEXPIRE     以秒/毫秒设定生存时间
TTL/ PTTL          以秒/毫秒为单位返回生产时间
PERSIST            取消生存时间设置
DEL                删除一个KEY
EXISTS             检查是否存在
RENAME             变更KEY名

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐