![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 76
程序猿洞晓
不忘初心,方得始终。
展开
-
Redis学习笔记(七):Redis中Lua语言应用和原子性控制
Lua脚本在Redis里面使用的范围还是很广的,如从数据库中批量将数据导入到Redis中、分布式锁防止锁误删、多操作原子性要求等,这些都会用到Lua脚本。但是这里还是需要注意的是Lua只能保证原子性,不能保证事务性。另外根据对Redis的了解,其本身是提供事务机制的,但是这个事务机制在很多情况是不能回滚的(鸡肋),所以用起来也更少。这里不说具体的事务性,而是来一起看看Lua脚本实现原子操作。Lua概念Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中原创 2022-03-15 09:57:27 · 1188 阅读 · 0 评论 -
Redis学习笔记(六):Redis之消息发布、订阅机制
消息的发布和订阅,第一想到的是Kafka、RabbitMQ、ActiveMQ等,但是实际上Redis也是有这个功能,这个功能在Redis中实现很简单,也比较粗暴。没有存储,没有各种订阅模式。只要订阅同一个渠道的订阅者就都可以收到发布到该渠道的信息。如果没有订阅者,消息也不会缓存起来,而是直接丢弃。在简单的功能、能够接受这种模式并且有补偿机制的业务中是可以考虑使用的。下面看一下这个到底是怎么玩的。订阅者(subscribe)客户端订阅,直接使用Jedis的API即可,没有复杂花哨的内容。看一下代码实现:原创 2022-03-15 09:57:17 · 4671 阅读 · 0 评论 -
Redis学习笔记(五):redis使用的RESP报文格式和手写Redis简易客户端
Redis客户端和服务端交互是通过tcp协议,在通讯的报文格式使用的是RESP协议规范,也就是意味只要和Redis服务端建立Scoket连接,通过RESP报文格式传输数据就可以实现Redis客户端和服务端的交互。看起来是很简单的,但是实际上的确是这么简单,RESP报文格式的可读性也是很高的。RESP协议介绍RESP协议特点RESP是Redis通讯的协议规范,有以下几种特点:简单的实现,人工也就可以写的出来快速的被计算机解析简单的可以被人工解析基于网络层,Redis在tcp端口6379(默认)原创 2022-03-15 09:57:06 · 893 阅读 · 0 评论 -
Redis学习笔记(四):缓存雪崩、缓存击穿、缓存穿透形成的原因和解决方案
想要了解缓存雪崩、缓存击穿、缓存穿透形成的原因,首先需要了解缓存在项目中是如何运用的。所以本篇文章的开篇就说一下缓存的使用。然后才能循序渐进的来介绍每种问题的出现和处理方案。缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。流程图如下:缓存穿透描述缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致原创 2022-03-15 09:56:53 · 323 阅读 · 0 评论 -
Redis学习笔记(二):Redis常用数据类型之set(集合)、zset(有序集合)的命令以及全局命令详解
上一篇博客说了str、hash和list三种数据类型,这篇博客将会介绍五种数据类型的后两种set和zset,分别是集合和有序集合。这两个数据类型就我个人的开发经验来说没用过,一方面是不熟悉,一方面是前面的三种类型基本已经满足了日常开发需求。在文章的最后还会补充说明一些全局的命令,至此关于命令的内容就结束啦。写的有点麻烦,但是写完后有种发现新大陆的感觉,后期在使用redis的时候,选择性知识体系将会更宽,不会仅限于一两种数据类型啦。redis数据类型之setset集合和Java中的set集合有点像,内部元原创 2022-03-14 10:07:16 · 683 阅读 · 0 评论 -
Redis学习笔记(一):Redis常用数据类型之str(字符串)、hash(哈希)和list(列表)的命令
redis是日常开发中最常的非关系型数据库,可以说只要是个项目基本都会使用到。常用来做数据缓存、分布式锁等等。redis的基本安装内容就不说了(在之前的博客搭建系列里面有提到redis的安装使用,如果不会的可以看一下),后面更新会说一下其配置文件中主要的配置信息。redis常用的数据类型str、hash、list、set、zset,但是最常用的应该就是前三种,这篇文章里面就是用来记录和说明这前三种数据类型常使用的命令。虽然在实际开发过程中很少使用这些命令,但是了解这些命令,会更有利于对redis相关API原创 2022-03-14 10:05:53 · 286 阅读 · 0 评论 -
Redis学习笔记(三):Redis应用之投票、红包
Redis基本数据类型及基本命令的使用都已经做完笔记了,接下来就需要将这些笔记实际运用到项目中。经常在项目中用到的就是缓存常量数据,还有一些基本的计数等操作,比如我的博客里面访问量、文章阅读量都是缓存在Redis中的,累加阅读量、访问量都是在Redis中完成,夜间定时刷入数据库的,这样就不用每次访问都去数据库中查询。基本应用没有问题,那来点稍微复杂的呢,这篇文章就让我们一起来看看其他的应用场景,将从文章投票排行榜、红包出发来依次说说具体使用何种数据结构合适。叙述在面试的时候经常会被用问Redis用到哪些原创 2022-03-15 09:56:07 · 626 阅读 · 0 评论 -
linux系统下安装Redis服务
linux下安装redis其实很简单,接下来我就简单的演示以下:创建目录:[root@slave /]# cd /usr/local/src/[root@slave src]# mkdir redis[root@slave src]# cd redis上传redis安装包:解压redis安装包:[root@slave redis]# tar -xvf re原创 2015-11-18 17:56:12 · 11466 阅读 · 0 评论 -
Redis缓存和RabbitMQ消息解决购车问题(用户登录,用户未登录和购物车合并)
在逛各大电商网站的时候,总会有将商品加入购物车,然后合并付款,这个大大的提高了用户的体验,某东更是任性,在未登录的情况下都可以将商品加入购物车,但是任性总是有代价的,后面我会说一下这个小bug。可能不算是个bug,但是体验上也有不爽的地方。还是谈谈购物车是如何实现的吧,购物车首先标识要唯一,因为每个账号要对应一个购物车,在登录状态下,我们可以直接将数据保存到数据库中,使用用户的id表示自己购买原创 2015-11-10 10:57:26 · 16738 阅读 · 7 评论