1.检测虚拟机环境
1.1 bit检测命令:getconf LONG_BIT(建议使用64bit做开发)
1.2 gcc环境检测:gcc -v
如果不具备gcc环境,则使用yum -y install gcc- c++命令进行c++环境的安装
2.开始安装
2.1 下载redis:
进入官网找
功能03-优惠券秒杀01
4.功能03-优惠券秒杀
4.1全局唯一ID
4.1.1全局ID生成器
每个店铺都可以发布优惠券:
当用户抢购时,就会生成订单,并保存到tb_voucher_order这张表中。订单表如果使用数据库的自增id就存在一些问题:
id的规律性太明显:用户可以根据id猜测一些信
功能03-优惠券秒杀02
4.功能03-优惠券秒杀
4.4一人一单
4.4.1需求分析
要求:修改秒杀业务,要求同一个优惠券,一个用户只能下一单。
在之前的做法中,加入一个对用户id和优惠券id的判断,如果在优惠券下单表中已经存在,则表示该用户对于这张优惠券已经下过单了,不允许重复购买
4.4.2
背景:在搜索的时候经常会有一种场景就是忽略大小写,不管你输入的是全大写还是全小写还是大小写混合,希望都能够搜索出结果。
解决思路:Elasticsearch中的lowercase normalizer将文本转换为小写,并将其作为规范形式存储在索引中。这可以确保在搜索和比较文本时忽略大写字母的差异,
功能03-优惠券秒杀03
4.功能03-优惠券秒杀
4.6Redisson的分布式锁
Redis分布式锁—Redisson+RLock可重入锁实现篇
4.6.1基于setnx实现的分布式锁问题
我们在4.5自己实现的分布式锁,主要使用的是redis的setnx命令,它仍存在如下问题:
4.6.
前言
平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题。
针对分布式锁的实现,目前比较常用的就如下几种方案:
基于数据库实现分布式锁
基于 Redis 实现分布式锁 【本文】
基于 Zookeeper
1:普通的Redis分布式锁的缺陷我们在网上看到的redis分布式锁的工具方法,大都满足互斥、防止死锁的特性,有些工具方法会满足可重入特性。如果只满足上述3种特性会有哪些隐患呢?redis分布式锁无法自动续期,比如,一个锁设置了1分钟超时释放,如果拿到这个锁的线程在一分钟内没有执行完毕,那么这个锁
少点代码,多点头发
本文已经被GitHub收录,欢迎大家踊跃star 和 issues。
https://github.com/midou-tech/articles
入职第一周,我被坑了
最近刚入职新公司,本来想着这刚来新公司,一般都是熟悉熟悉公司同事,看看组内工程文档,找几个demo自己练
环境:Docker + ( Redis:5.0.5 * 3 )
1、拉取镜像
docker pull redis:5.0.5
2、创建Redis容器
创建三个 redis 容器:
redis-node1:6379
redis-node2:6380
redis-node3:6381
dock
前言
平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题。
针对分布式锁的实现,目前比较常用的就如下几种方案:
基于数据库实现分布式锁
基于Redis实现分布式锁 【本文】
基于Zookeeper实现分
最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得一定是之前写的这篇 《基于Docker的Redis集群搭建》 文章有问题了,所以我花了几分钟浏览之前的文章总结了下面几个问题:
redis 数量太少,只创建了 3 个实例;
由于只有 3 个实例,所以全部只能是主节点,无法体现集
1、启动docker
systemctl start docker
2、拉取redis镜像
docker pull redis:5.0.3
注意,如果不注明版本号,则拉取最新版本
3、创建本地redis挂载目录
mkdir -p /root/redis/data /root/redis/co
一些闲扯的话
我们清楚,Redis 尽管提供了 16 个索引库,但是每个数据库之间是隔离互不共享的,客户端默认连接使用的是 0 号数据库 。
注意:上方情况是基于单机 Redis 的,在集群模式下是没有多数据库概念的,只有一个 db0,不支持多 db。
所以,本文切换数据库是基于单机版 Re
功能03-优惠券秒杀04
4.功能03-优惠券秒杀
4.7Redis优化秒杀
4.7.1优化分析
现在来回顾一下优惠券秒杀业务的两个主要问题:
(1)首先是对优惠券的扣减,需要防止库存超卖现象;
(2)其次,需要对每个用户下单数量进行限制,实现一人一单的功能。
处理秒杀优惠券的业务:
先根据获取
互联网技术发展真的快,层出不穷的新技术。最近项目使用到了etcd,自己之前在部署k8s集群的时候玩过,但是并没有系统的学习。正好趁这个机会,系统性的学习下。文章中的内容有些是来自官方文档,有些是来自网上的资料,有些是自己的思考。如果有不错的地方,请不吝赐教,大家有好的教程,也欢迎评论区留言,学习
功能04-达人探店
5.功能04-达人探店
5.1发布&查看探店笔记
5.1.1发布探店笔记
探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个:
tb_blog:探店笔记表,包含笔记中的标题、文字、图片等
tb_blog_comments:其他用户对探店笔记的评价
/*表: tb
功能05-好友关注
6.功能05-好友关注
6.1关注和取关
6.1.1需求分析
在探店图文的详情页面中,可以关注发布笔记的作者:
关注和取关:点击关注按钮就会发出请求(上图):http://127.0.0.1:8080/api/follow/2/true(2是关注的用户id,最后面的参数可以是t
1. 简介
1.1 什么是Redis事务
Redis事务(Transaction)通过将多个Redis操作封装为一个原子性的操作序列,确保在事务执行过程中,不会受到其他客户端的干扰。从而在保证数据一致性的同时,协调并发,提高数据操作的效率和性能。
1.2 Redis事务的应用场景
在分布式系统和
上一章我们认识了etcd,简单的介绍了 etcd 的基础概念,但是理解起来还是比较抽象的。这一章我们就一起来部署下 etcd 。这样可以让我们对 etcd 有更加确切的认识。
1、etcd单实例部署
对于平常的学习,其实搭建一个单机节点是够了的。接下来就讲讲怎么搭建单机节点。
本次部署是在 ce
本文首发于公众号:Hunter后端
原文链:Redis基础命令汇总,看这篇就够了
本篇笔记将汇总 Redis 基础命令,包括几个常用的通用命令,和各个类型的数据的操作,包括字符串、哈希、列表、集合、有序集合等在内的基本操作。
以下是本篇笔记目录:
通用命令
字符串命令
哈希命令
列表命令
集合