redis缓存

1:NoSQL 产品(key-value)

RDBMS :MySQL,Oracle ,MSSQL,PG

NoSQL:Redis,MongoDB,列存储存储相关

NewSQL----->分布式数据库架构(学习了MongoDB)

缓存产品介绍:

memcached (大公司会做二次开发)

redis

Tair

2:Redis功能介绍

数据类型丰富

支持持久化     

多种内存分配及回收策略

支持事务           

消息队列、消息订阅

支持高可用                               

支持分布式分片集群

缓存穿透\雪崩

Redis API 

3:企业缓存产品介绍

Memcached:多核的缓存服务,更加适合于多用户并发访问次数较少的应用场景

Redis:单核的缓存服务,单节点情况下,更加适合于少量用户,多次访问的应用场景。

Redis一般是单机多实例架构,配合redis集群出现。

4:Redis安装部署

下载:

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

解压:

上传至 /data

tar xzf redis-3.2.12.tar.gz

mv redis-3.2.12 redis

安装:

cd redis

sudo apt-get install make

make

如果出现以下的错误

cd src && make all

make[1]: Entering directory'/home/ubuntu/redis-4.0.11/src'

    CC adlist.o

/bin/sh:1:cc:not found

Makefile:228: recipefortarget'adlist.o'failed

make[1]: *** [adlist.o] Error127

make[1]: Leaving directory'/home/ubuntu/redis-4.0.11/src'

Makefile:6: recipefortarget'all'failed

make:*** [all] Error2

则可以安装 gcc

sudo apt-get install gcc

如果报错如下所示

cd src && make all

make[1]: Enteringdirectory'/home/ubuntu/redis-4.0.11/src'

    CC adlist.o

In file includedfromadlist.c:34:0:

zmalloc.h:50:10: fatalerror: jemalloc/jemalloc.h: No such fileordirectory

#include

          ^~~~~~~~~~~~~~~~~~~~~

compilation terminated.

Makefile:228: recipefortarget'adlist.o'failed

make[1]: *** [adlist.o]Error1

make[1]: Leavingdirectory'/home/ubuntu/redis-4.0.11/src'

则可以通过

make MALLOC=libc

来替代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

127.0.0.1:6379> exit


5、Redis基本管理操作


5.1基础配置文件介绍

创建文件夹 编辑配置文件

mkdir /data/6379

cat > /data/6379/redis.conf<

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-cli -h 192.168.1.4 -p 6379

通过ip地址连接,做插入语句会报错,产生安全模式, 需要对配置文件进行配置

redis默认开启了保护模式,只允许本地回环地址登录并访问数据库。

禁止protected-mode

protected-mode yes/no (保护模式,是否只允许本地访问)

(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

5.3 在线查看和修改配置

CONFIG GET *

CONFIG GET requirepass

CONFIG GET r*

CONFIG SET requirepass 123


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

redis 支持2个持久化方法:RDB、AOF

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

AOF 持久化(append-only log file):记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。

    AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。

    优点:可以最大程度保证数据不丢

    缺点:日志记录量级比较大

rdb持久化核心配置参数:

vim /data/6379/redis.conf

dir /data/6379

dbfilename dump.rdb

save 900 1

save 300 10

save 60 10000

配置分别表示:

900秒(15分钟)内有1个更改

300秒(5分钟)内有10个更改

60秒内有10000个更改

AOF持久化配置

appendonly yes    #打开aof日志功能

appendfsync always   # 每1个命令,都立即同步到aof

appendfsync everysec  #  每秒写1次

appendfsync no   #入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof.


vim /data/6379/redis.conf

appendonly yes

appendfsync everysec

问题:redis 持久化方式有哪些?有什么区别?

rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能

aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog

你可能感兴趣的:(redis缓存)