浮华编思论-番外技术-redis(1)

写给自己的话,博客应该是记录你一些心得,属于你自己的东西,而不是当笔记本,如同百度云盘保存那么多不看的资料,只要是你自己的哪怕简单一点,有你自己的思想,那么就是一个很好的起步。致浮华。

形成自己的一套对于新技术的想法,怎么去熟悉新技术,为未来提供知识储备。

目前业务需求引出业务需求,来当做自己学习新技术的一个方法。

A.技术基本是springboot+mybatis+mysql来当做后端的模板。数据储存在mysql中,每一次增删改查都需要调用连接数据库进行查询,查询有对应消耗,单个数据每秒最多查询不超过2000次。

场景是需要你进行某一个用户消费记录的显示,用户有多个并且需要显示用户名字。很简单的sql就可以实现了查询用户消费表,然后用户id关联出用户表,通过子查询带出对应用户名字就可以实现。一个sql就可以解决问题。组长要求sql里面要干净,不要带子查询逻辑,sql就是一个单表的增删改查,那么怎么处理?先写一个查询所有的用户消费记录,然后获取对应消费记录中id,分别去查询对应用户id。重复太多,如何去处理?最好哪里可以有缓存一下,本地使用缓存,创建一个map,里面存放所有id对应名字,然后对应id放到map中取出对应的名字来实现用户姓名的显示。效率分析,数据库操作是只有二次,但是问题来了,对应压力到了服务器,而且所有名字,其中大部分可能是不需要的,随着数据库用户变多,你获取所有然后保存到map中,之后再遍历的是绝对不行的。进一步,引入redis。依然是查询所有的用户消费记录表的信息,然后对应用户id先查询redis中是否存在,如果不存在,查询一次数据库,并且对应用户id跟用户名称放到redis缓存,设置过期时间。redis基于内存,查询数据快于mysql数据库查询。那么原先将调用数据库1+N次,优化到调用数据库1+ Z (Z<=N)+ 调用redis (N-Z)次 ,对应最差就是每次都调用数据库,但是如果redis缓存可以命中一些用户数据,那么就是提高了效率,而且redis比mysql抗揍,redis基于内存,4w qps 也能抗下来,比mysql的2000 qps 要抗揍很多。所以本次技术引入使用是成功的。

B.初识redis,那么怎么去学习redis。其实redis本身你也可以当成第三方来调用,只是这个第三方反馈很及时。

这里省略redis的安装以及对应客户端安装。默认是有16个db (0-15),如果不设置默认是0.需要提醒到的是,不同db的数据不同步的,出现过客户端跟管理端使用的是不同的redis的db,其中客户端是1,管理端是2。然后客户端存在用户登录失败,就会记录到失败次数在对应db1,当用户手机号对应失败次数到达5,就会直接返回用户被禁止登录,请等待解封之后处理。当然如果用户失败4次,然后第5次成功了,就清空对应用户失败次数。同理在管理端,也实现用户的登录重置,一开始只是简单跟客户端一样,查询是否有对应key,如果存在就清空。结果问题出现对应redis数据库不一样,所以后面调整到对应共用一个数据库,(网上查询了一下,可以切换对应数据库开支不大但是没找到在线切换数据库的方法,所以就采取了共用一个数据库的方法。不过客户端跟管理端的缓存都放在了一起,这里对应用户key添加user跟manage拼接到key作为区分)。另外redis最显著二个特点是高可用,高并发。其中高并发只是通过网上了解对应redis基于内存,可以承受4wqps的访问量,远比mysql的2000qps要来的高很多,而且redis访问速度比mysql快。但是redis无法代替mysql,因为redis是作为缓存的,它并不能代替数据库,redis的数据总会有清空的。

C.redis的数据类型理解

String的get key value跟set key value属于单个操作,群操为前面加上M 也就是Mset跟Mget,删除为 del key,数字递增 incr key  指定整数增加 incrby key increment。数字递减decr key 指定整数减少 decrby key decrement。尾部追加值  append key value。场景对应,简单的key-value应用在用户登录验证部分,用户每次登录都会携带对应token,如果用户进行操作都要进行权限token验证,那么每次查询都需要访问数据库,交互就很频繁,所以token放到redis中保存。另外,原先是一些功能访问有对应次数,为了防止被频繁爬虫,就设置了对应使用次数的校验,每次使用功能一次就自增一次,并且设置过期时间,比如在10s内该账号访问次数达到20次,就进行禁止登录,token清空处理,以此来实现对账号的把控,更进一步则是记载对应访问的ip地址,在对应云服务器上进行设置黑名单。对应解封,微信联系客服进行解封。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容

  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 5,292评论 0 36
  • Redis 1. redis 简介 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛...
    xMustang阅读 264评论 0 0
  • Nosql概述 在介绍Redis之前,首先先要介绍Nosql的概念。 互联网架构发展 在90年代的时候,计算机访问...
    COKIDCC阅读 689评论 0 1
  • 三年前,我是个彻彻底底的失败者,尽管现在也很堕落,但在那时我就连自己也觉得过得没有任何意义。 我出生于...
    夕阳浅照阅读 227评论 1 4
  • 用一段摘抄告别坚定而又任性的24岁 迎接风风火火的本命年生辰 没有flag 于亲人 于自己选择的家人 于朋友 愿难...
    Harriet安安阅读 153评论 0 1