-
业务需求中经常有需要用到计数器的场景:譬如一个手机号一天限制发送5条短信、一个接口一分钟限制多少请求、一个接口一天限制调用多少次等等。使用Redis的Incr自增命令可以轻松实现以上
-
1. 基于 session 实现短信登录
1.1 短信登录流程图
1.2 实现发送短信验证码
前端请求说明:
说明请求方式POST请求路径/user/code请求参数phone(电话号码)返回值无
后端接口实现:
@Slf4j
@Service
p
-
一、下载
官网:Redis 我们下载 Stable 稳定版
# cd /mydata
# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
二、安装redis6.2.6
1、安装到/usr/local/redis6.2.6/目录下
# cd /mydata/
# tar -z
-
1. 问题场景
我们在使用Redis的时候经常会将对象序列化存储到Redis中,在取出的时候进行反序列化,如果对象过大在进行序列化和反序列化的时候会有一定性能问题。今天查看了CSRedis源码发现
-
一、简介
Redis采用了乐观锁方式进行事务控制,它使用watch命令监视给定的key,当exec(提交事务)的时候,如果监视的key从调用watch后发生过变化,则整个事务
-
win 7 安装redis服务
Redis官方是不支持windows的,只是 Microsoft Open Tech group 在 GitHub上开发了一个Win64的版本,项目地址是: https://github.com/MSOpenTech/redis
win 7 安装redis服务目录下载 redis安装 redis解压文
-
一、造成原因与场景
在接口连接 redis 时,使用了 pconnect 进行 redis 长连接,在 Redis->auth() 中抛出异常:
PHP Fatal error: Uncaught exception 'RedisException' with message 'read error on connection'
注:由于 php-fpm
-
存储sortedset:
存储:zadd key score menber1 score menber2 ...
升序排列:zrange key start end [withscores]
降序排列:zrevrange key start end [withscores]
取得前三名:
按照排名范围删除元素:zremrangebyrank key start sto
-
1 链表和链表节点的结构
1.1 节点结构
节点的结构大概长下边这个样子:
那么,把这些节点就连起来就成了这个样子:
1.2 链表结构
链表自然除了要把这些节点连起来,还得保存一些其他的信
-
1、Sentinel 哨兵
Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监
-
1、redis-cli命令行中执行:
# 调用redis命令设置缓存
# 不传参数
eval "return redis.call('set', 'name1', 'Tom')" 0
# 传入1个值参数
eval "return redis.call('set', 'name2', ARGV[1])" 0 "Tom"
# 传入1个键名参数和1个值参数
ev
-
今天我们来聊一聊分布式锁的那些事。
相信大家对锁已经不陌生了,我们在多线程环境中,如果需要对同一个资源进行操作,为了避免数据不一致,我们需要在操作共享资源之前进行加锁操作
-
基于 Redis 存储 Session
如果我们想将 session 数据保存到 redis 中,只要将 session 的存储引擎改成 redis 即可。
使用 redis 作为存储引擎的例子:
首先安装 redis 存储引擎的包
go get github.com/gin-contrib/se
-
那今天就聊聊怎么优雅的用Redis作为Mybatis的二级缓存。
要优雅就选择Mybatis-Plus
关于Mybatis-Plus的基础设置就不多做介绍了,只说和二级缓存有关的。
首先在配置文件开启二级缓存。
mybatis-plus:
-
项目中有遇到这个问题,跟MySQL中的数据不一致,研究一番发现这里面细节并不简单,特此记录一下。
写在前面
严格意义上任何非原子操作都不可能保证一致性,除非用阻塞读写实现强一致性