您当前的位置:首页 > 电脑百科 > 数据库 > Redis

Redis这么讲你还不能入门么

时间:2020-08-10 16:03:28  来源:  作者:

redis是当今世界最为流行的非关系型数据库之一,国内的华为阿里巴巴腾讯百度今日头条美团等,国外的谷歌微软亚马逊等大型互联网公司都在广泛的应用Redis。

其实不光在互联网公司,Redis在一些非互联网公司中也有非常广泛的应用。

可以这么说但凡有点规模的IT公司,Redis都是标配,Redis与软件研发息息相关,如果不懂Redis,你将错过整个世界

所以我们不光要学Redis,还要把Redis学好。

Redis到底是啥

相信很多朋友即使没有用过也听说过Redis, Redis似乎是我们IT人群中的一个高频词汇。

用官方的话来说

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.

Redis 是一个开源(BSD许可)的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件

是不是你每个字都认识,但是连起来就有点懵逼了,好吧, 那我再来给大家翻译一下。

大家把Redis想象成为一个非关系型数据库,所以Redis和MySQL是完全不一样的,Redis是一个NoSql数据库(not only SQL), 这个数据库存在于内存中,并且不用建立和维护表、字段等信息。而且Redis可以做的很多有趣的事,MySQL都是无能为力的哦。

 

Redis支持的数据结构

Redis不像MySQL那样通过SQL语句来存取数据。它是通过一定的数据结构配合对应的命令来完成数据存取的。

Redis 支持的数据结构包括 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs和 地理空间(geospatial) 索引半径查询

为了让大家有一个直观的感受,我们以字符串(strings)为例,来看一下Redis到底是怎么存取数据的

  • 首先通过命令启动Redis数据库

redis-server.exe redis.windows.conf

Redis这么讲你还不能入门么

 

  • 用客户端命令连接到Redis数据库

redis-cli -h 127.0.0.1 -p 6379

Redis这么讲你还不能入门么

 

  • 通过命令存入数据

set name zhangsan

Redis这么讲你还不能入门么

 

  • 通过命令取出数据

get name

Redis这么讲你还不能入门么

 

上边的name是我们可以随便定义的名字,也可以是age或者address, 这叫做Key, 而zhangsan 就是我们的Value。

Redis这么讲你还不能入门么

 

Redis的应用场景

Redis的应用场景非常之多,下面我简单列举几个最经典的场景

  1. 数据库缓存

随着系统用户的增多,数据库的访问压力也在逐渐增加,有些不常用的数据比如 字典数据、系统配置数据等就可以放入到Redis中缓存起来,这样就不用每次都去访问数据库来获取这些数据,从而减小了数据库的压力。

大体流程图如下

Redis这么讲你还不能入门么

 

  1. Session数据共享

系统在单机部署的情况下,服务器能够根据用户传来的cookie找到其对应的服务器Session,从而能够确定该用户的身份信息。

但是在集群部署的情况下,上述流程就会失效。

假如用户登录的请求被分发到了server1, server1上会存储用户的session信息。

Redis这么讲你还不能入门么

 

假如用户下一步的操作是获取菜单,该请求同样被分发到了server1, 这时是没有问题的。

Redis这么讲你还不能入门么

 

但是当用户获取权限时请求被分发到了server5, 由于server5不存在用户的session信息,所以要求其重新登录,显然这是一个不合理的要求。

Redis这么讲你还不能入门么

 

为了解决这个问题我们可以把Session信息存入到Redis中,所有服务器共享Redis 进而 共享了Session信息。

  1. 分布式锁

同样在单机部署的情况下,JVM的锁机制是没有问题的,可以达到同步线程的目的。但是在集群部署的情况下,JVM的锁机制将完全失效,因为显然锁住集群一个节点的JVM对象对集群其他节点是不可见的,所以分发到其他节点的请求,照样可以顺利运行,并不受锁的限制。

Redis这么讲你还不能入门么

 

因为Redis是所有集群节点共享的,用Redis来实现锁,就可以帮我们完美解决这个问题。

Redis这么讲你还不能入门么

 

如想了解更多关于Redis的知识,可以私信笔者,会有资料相送哦。



Tags:Redis   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
来源: my.oschina.net/xiaomu0082/blog/2990388首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应...【详细内容】
2021-12-08  Tags: Redis  点击:(16)  评论:(0)  加入收藏
我不知道为什么你会选择对特定数量的“错误”(或警告)如此具体。听起来您正在寻找将要发布到 Yahoo! 的某些文章的内容。 Insider (N Foos to Blah for the BlahBlah)。那说:...【详细内容】
2021-12-07  Tags: Redis  点击:(14)  评论:(0)  加入收藏
目录 一、背景 二、步骤 0.理论支持 1、获取数据 2、结果 3、分析数据并评估大小 三、关于repl-backlog-size 一、背景 repl-backlog-size控制这个环形缓冲区. ​ 主从断...【详细内容】
2021-11-05  Tags: Redis  点击:(41)  评论:(0)  加入收藏
Redis 性能测试是通过同时执行多个命令实现的。1,Redis-benchmarkRedis性能命令:redis性能命令格式: redis-benchmark [option] [option value] redis 性能测试工具可选参数如...【详细内容】
2021-11-02  Tags: Redis  点击:(41)  评论:(0)  加入收藏
1 概述数据结构和内部编码 无传统关系型数据库的 Table 模型schema 所对应的db仅以编号区分。同一 db 内,key 作为顶层模型,它的值是扁平化的。即 db 就是key的命名空间。 key...【详细内容】
2021-11-01  Tags: Redis  点击:(28)  评论:(0)  加入收藏
普通java中使用引用Java redis 驱动,即可连接:import redis.clients.jedis.Jedis; public class RedisTestJava { public static void main(String[] args) { //连...【详细内容】
2021-10-13  Tags: Redis  点击:(34)  评论:(0)  加入收藏
Redis常用的数据结构有 string list set zset hashstringstring 是 Redis 的基本的数据类型,一个 key 对应一个 value。string 类型是二进制安全的,Redis的string可以包含任...【详细内容】
2021-10-12  Tags: Redis  点击:(36)  评论:(0)  加入收藏
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入、弹出数据,可以充当栈和队列的角色。> LPUSH fruit apple(integer) 1> RPUSH fruit banana(integer)...【详细内容】
2021-09-17  Tags: Redis  点击:(54)  评论:(0)  加入收藏
Redis持久化意义 是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你的redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用 大量的请...【详细内容】
2021-08-12  Tags: Redis  点击:(77)  评论:(0)  加入收藏
Nginx来限制访问控制的方法有多种,nginx主要有2个模块控制,但是那些不支持自定义,非常死,在大多数场景下并不实用。今天分享一个:利用openresty+lua+redis 实现封杀频繁恶意访问I...【详细内容】
2021-08-12  Tags: Redis  点击:(118)  评论:(0)  加入收藏
▌简易百科推荐
来源: my.oschina.net/xiaomu0082/blog/2990388首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应...【详细内容】
2021-12-08  Java识堂    Tags:Redis   点击:(16)  评论:(0)  加入收藏
我不知道为什么你会选择对特定数量的“错误”(或警告)如此具体。听起来您正在寻找将要发布到 Yahoo! 的某些文章的内容。 Insider (N Foos to Blah for the BlahBlah)。那说:...【详细内容】
2021-12-07  富集云科技有限公司    Tags:Redis   点击:(14)  评论:(0)  加入收藏
目录 一、背景 二、步骤 0.理论支持 1、获取数据 2、结果 3、分析数据并评估大小 三、关于repl-backlog-size 一、背景 repl-backlog-size控制这个环形缓冲区. ​ 主从断...【详细内容】
2021-11-05  弈秋的美好生活    Tags:redis   点击:(41)  评论:(0)  加入收藏
Redis 性能测试是通过同时执行多个命令实现的。1,Redis-benchmarkRedis性能命令:redis性能命令格式: redis-benchmark [option] [option value] redis 性能测试工具可选参数如...【详细内容】
2021-11-02  川石信息    Tags:Redis   点击:(41)  评论:(0)  加入收藏
1 概述数据结构和内部编码 无传统关系型数据库的 Table 模型schema 所对应的db仅以编号区分。同一 db 内,key 作为顶层模型,它的值是扁平化的。即 db 就是key的命名空间。 key...【详细内容】
2021-11-01  JavaEdge    Tags:Redis   点击:(28)  评论:(0)  加入收藏
普通java中使用引用Java redis 驱动,即可连接:import redis.clients.jedis.Jedis; public class RedisTestJava { public static void main(String[] args) { //连...【详细内容】
2021-10-13  faesuite    Tags:Redis   点击:(34)  评论:(0)  加入收藏
Redis常用的数据结构有 string list set zset hashstringstring 是 Redis 的基本的数据类型,一个 key 对应一个 value。string 类型是二进制安全的,Redis的string可以包含任...【详细内容】
2021-10-12  语霖    Tags:Redis   点击:(36)  评论:(0)  加入收藏
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入、弹出数据,可以充当栈和队列的角色。> LPUSH fruit apple(integer) 1> RPUSH fruit banana(integer)...【详细内容】
2021-09-17  深夜敲代码    Tags:Redis   点击:(54)  评论:(0)  加入收藏
Redis持久化意义 是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你的redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用 大量的请...【详细内容】
2021-08-12  小李说IT    Tags:Redis   点击:(77)  评论:(0)  加入收藏
当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶意攻击时,接口的访问全部透过Redis访问数据库,而数据库中也没有这些数据...【详细内容】
2021-07-30  随便t    Tags:缓存穿透   点击:(90)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条