redis作用_Redis安装 和使用详解!!!

cb94c27cf1b11b86461af23c8451296e.png

第161次(Redis)

学习主题:Redis

学习目标:

1 掌握什么是Redis

2 掌握Redis存储的各种数据类型

1. Redis介绍

(1) 什么是Redis?

开源的使用C语言编写的 基于内存 的可持久化的日志型 Key-Value数据库

数据结构服务器(Value可以是 字符串(String) ,哈希(Map),列表(list),集合(sets)和有序集合(sorted sets)等类型)

(2) Redis有哪些特点?

1. 支持多种数据结构 如:String List dict(hash表) set(集合) zset(有序集合) hyperloglog(基数估算)

2. 支持持久化操作 aof和rdb数据持久化到磁盘 (数据备份和数据恢复)

3. 支持数据复制(通过master-slave)

4. 单进程请求 (单线程)

2. 安装Redis单机版

(1) 如何安装Redis单机版?

1. 在linux系统中安装gcc (因为redis是c语言编写的)

Yum install -y gcc-c++

2. 将下载好的redis压缩包添加到linus服务器中(temp目录(新建的)下最好)

版本:redis-3.0.0.tar.gz

注意: 副版本号(就是3后面那个数字)是奇数,说明是测试版,不建议用来开发,偶数是稳定版,建议使用

Redis 3.0版本之后 才可以使用集群技术

3. 解压安装包

Tar -zxf redis...

4. 编译redis

在redis的根目录下 执行make命令就会自动编译

5. 安装

进入redis的解压目录的根目录下

执行 make install PREFIX=/usr/local/redis

6. 启动redis

5.1:前端启动

直接在bin目录下执行命令 ./redis-server (ctrl+c退出redis)

5.2:后端启动

5.2.1先将 redis目录下的redis.conf文件拷贝到 安装好的redis的bin目录下

Cp redis.conf/usr/local/redis/bin

5.2.2 修改拷贝过来的redis.conf配置文件

Vim redis.conf 将daemonize no 改为yes

5.2.3启动redis

在bin目录下执行命令 ./redis-server redis.conf 让redis启动时去加载redis.conf配置文件

5.2.4测试redis

在bin目录下启动redis自带的客户端 ./redis-cli

输入redis命令

Ping-->pong

bbf301e514a0fb08e705f5c344c4d356.png

5.2.4关闭redis

./redis-cli shutdown

3. Redis数据类型 -String类型

(1) set/get命令的作用是什么?

在redis库中存入数据string类型 键值对的形式

9ed38fcf81ea0d2f82c8a8fcbca69c11.png

(2) mset/mget命令的作用是什么?

批量取值和赋值

6eeb0c2bdc8a055b27d323240b76fe39.png

(3) incr/decr命令的作用是什么?

Incr :让当前键的值以1的数量递增

Decr:让当前键的值以1的数量递减

37be0c6463a9c23cd36568bc45f49ba4.png

93375d5cd986e8f962bc22f8505e4fdb.png

4. Redis数据类型 -Hash类型

(1) hset/hget命令的作用是什么?

将数据以hash表的结构存储

20dadd9f7dc85f9ef50028a277331aca.png

(2) hmset/hmget命令的作用是什么?

存储多个或取出多个hash表中的key 的值

2b9d45e34087c2f707fb7de1f5d39ccf.png

(3) hexists命令的作用是什么?

判断当前hash的字段名是否存在,存在返回1 ,不存在返回0

771737b8ae48eeceb14202e982fb857f.png

(4) hkeys/hvals命令的作用是什么?

获取当前hash表中的所有键名,或所有键的值

52350ec08927752c6309adbb9dd82da5.png

464710f926488284a9ee4309748888aa.png

5. Redis数据类型 -List类型

(1) lpush/rpush命令的作用是什么?

Lpush在首节点的左侧添加一个值

Rpush在尾节点的右侧添加一个值

36125466be077bd5f7782b8dba2759a5.png

9fba0b03d05b2f949320955a6f452c33.png

(2) lpop/rpop命令的作用是什么?

Lpop:移除当前list中最左侧的节点

Rpop:移除当前list中最右侧的节点

5dcd7410debc7d3a29c04f62351cae0b.png

(3) lrange命令的作用是什么?

遍历 list 根据范围查询值0开始

eb20367beb58c55942c073e0809e454c.png

(4) llen命令的作用是什么?

查询该list下值的总数

f8da454ae1beeabc8f2c154b1b2b5286.png

3dd23c9c8170ef85b00646c8843ab05e.png

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

第162次(Redis)

学习主题:Redis

学习目标:

1 掌握Redis的常用命令

2 掌握Redis的配置文件 数据的存储方式

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

6. Redis数据类型 -Set类型

d87f363a3117c6a8bd2412d44665ac9f.png

(1) sadd/smembers命令的作用是什么?

Sadd:在指定set集合中添加数据

9aaf2d5bf6907e3acc5777c36692ce62.png

Smembers:查询指定set集合中的所有数据

214c90621d3a7d523567bf77822d82b2.png

(2) scard命令的作用是什么?

Scard:查询set集合中数据的总数

cbd845df26f690da41904cd4f82a9e1d.png

(3) sismember命令的作用是什么?

Sismember:判断value是否在指定set集合中 存在返回1 ,不存在返回0

(4) srem命令的作用是什么?

Srem:移除指定set集合中的指定元素 成功返回1,不存在返回0

e54d099296b5a714f36172fcef0f7c58.png

7. Redis数据类型 -SortedSet类型

(1) zadd命令的作用是什么?

添加有序集合zset

30e9229026df5e4a9d829fc87652b9de.png

(2) zrange命令的作用是什么?

查询指定范围

771466c73b582abe6b9369d1dbe967da.png

(3) zremrangebyscore命令的作用是什么?

查询指定范围 对应的分值也会查询

3563e4442497e2155e9782cbfb4ff00a.png

8. Redis的常用命令

(1) ping命令的作用是什么?

验证redis是否链接成功的,成功则返回pong

cf4ef5f1caa52c5acd6cede8b5c72241.png

(2) echo命令的作用是什么?

验证redis是否链接成功的,成功则返回输入的值

c735ccf9eabec3c8734f6a3dac2f2327.png

(3) keys命令的作用是什么?

Keys;查询key是否存在

Keys *: 查询所有的key

d756810adc89161780664119ffbc04e1.png

(4) exists命令的作用是什么?

判断string类型的指定的key是否存在 ,存在返回1,不存在返回0

b99ae768528592592527626d14309bee.png

(5) expire命令的作用是什么?

Expire key time 给指定key设置过期时间 ,时间一到,redis就会把此key和value删除

01128daf23998c193ec403d3970f4224.png

(6) ttl命令的作用是什么?

查询指定key的过期时间的剩余时间

7845b3efcbf20f255c0f3e69c45022ab.png

Persist:移除给定key的过期时间

4ad23870acd09b8beb71d670b8426dcd.png

(7) flushdb命令的作用是什么?

删除当前选择的数据库中所有的key(有16个数据库 select number 切换)

(8) dbsize命令的作用是什么?

返回当前数据库中的key的数量

(9) info命令的作用是什么?

获得服务器的信息和统计

9. Redis配置文件

(1) 如何配置Redis启动时为后置启动?’

Daemonize yes

(2) 如何配置Redis监听端口?

port

(3) 如何修改Redis的日志文件的保存位置?

Logfile 保存路径

10. Redis数据持久化方式-RDB

(1) 什么是Redis的RDB备份方式?

将Redis在内存中的数据库状态保存到磁盘里.是经过压缩二进制文件

通过该文件可以还原RDB文件时的数据库状态(默认,持久到dump.rdb文件,并且在redis重启后,自动读取该文件,这些配置项都可以在redis.conf中修改)

(2) RDB的生成方式?

两种方式

Save: 该命令会阻塞Redis服务器线程,直到RDB文件创建完毕为止,阻塞期间,服务器不能处理任何请求

BGSAVE:该命令会派生一个子线程,子线程负责创建RDB文件,父线程继续执行请求

在RDB创建成功之前,执行BGSAVE和Save命令会被服务器拒绝

(3) RDB的备份策略是什么?

Save 900 1

Save 300 10

Save 60 10000

那么只要满足以下三个条件中的任意一个,BGSAVE 命令就会被执行

服务器在 900 秒之内,对数据库进行了至少 1 次修改

服务器在 300 秒之内,对数据库进行了至少 10 次修改

服务器在 60 秒之内,对数据库进行了至少 10000 次修改

(4) 如果修改RDB的备份策略?

可以设置服务器配置(redis.conf)的save选项,让服务器按条件自动执行一次BGSAVE命令

(5) RDB备份方式所生成的备份文件默认的会放到什么位置?

默认放在打开服务器服务的根目录下(在哪里打开的就生成在哪里)

11. Redis数据持久化方式-AOF(默认时关闭的,需要修改配置文件开启该方式)

a67f3f1e96a3a1795ff3cc0227631465.png

(1) 什么是Redis的AOF备份方式?

把每一天命令都写入文件

(2) AOF的备份策略是什么?

通过保存Redis服务器所执行的写的命令(查询命令不会记录)来记录数据库状态的文件

(3) AOF备份方式所生成的备份文件默认的会放到什么位置?

Bin目录下

(4) AOF方式是如何做数据恢复的?

服务器启动时,通过载入和执行AOF文件中班车的命令来还原服务器关闭之前的数据库状态

载入AOF文件

创建模拟客户端

从AOF文件中读取一条命令

使用模拟客户端执行命令

循环读取直到完成

同时开启了RDB和AOF AOF优先,而且只加载AOF文件恢复数据

12. Redis集群介绍(Redis3.0版本之后才支持cluster(集群),集群要求集群节点中必须要支持主备模式,也就是说集的主节点(Master)至少要有一个从节点(Slave))

009bf336291da9d026c4359cc710d00c.png

(1) Redis的集群原理是什么?

客户端可以与任何一个节点相链接,然后就可以访问集群中的任何一个节点,对其进行存取和其他操作

(2) Redis集群的容错原理是什么?

Redis之间通过相互的ping-pong判断是否节点可以连接上,如果有一半以上的节点去ping一个节点的时候没有回应,集群就认为这个节点挂了(宕机),然后去连接他的从节点,如果某个节点和所有从节点全部挂掉,我们集群就进入fail(失败)状态,还有就是如果有一半以上的主节点挂了,集群同样进入fail状态, 这就是redis的容错原理

(3) 在Redis集群中是如何做数据分片存储的?

我们将16384个插槽分配给所有的集群

当我们需要存取key-value时,redis会根据crc16算法算出一个值

然后对这个值进行取余 值%16384 =插槽的编号

然后我们找到该插槽的Node节点,执行value的存取操作

e3d1393d5a0c636ca0f00afbb0ef78f0.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值