全局唯一的id生成的技术方案有很多,业界比较有名的是UUID、redis、Twitter的snowflake算法、美团Leaf算法。   我们重点来讲解redis生成id算法。 全局唯一id必须具备什么特点?1. 全局唯一性:不能出现重复的ID,最基本的要求。2. 单调递增:保证下一个ID一定大于上一个ID。3. 趋势递增:在一段时间内,生成的ID是递增的趋势。如:在一段时间内生成的ID在【0,1000】之间,过段时间生成的ID在【1000,2000】之间。    但在【0-1000】…

2021年6月2日 0条评论 6点热度 阅读全文

背景 如果面试中被问到电商系统怎么避免商品超卖,大家很容易就会回答用redis实现分布式锁,来避免这个问题,但是引用了分布式锁保证了数据的准确性,但却是牺牲了部分的并发性能,那么有没有优化的方案,可以优化redis分布式锁呢? reids分布式锁 上面这个是 使用redis分布式锁的基本逻辑,在一个请求获取锁之后,后面一个请求需要等前一个 请求释放掉锁之后才能获取锁,会基于分布式锁的串性化处理。 优化 JDK7中ConcurrentHashMap时基于分段锁实现并发线程安全的,所以可以参考这个思路进行优化,例如总库…

2021年5月24日 0条评论 7点热度 阅读全文

高并发,分布式缓存和本地缓存 讲解分布式缓存和本地缓存知识 缓存穿透,击穿和雪崩你是否可以区分 Redis使用规范 操作规范 讲解分布式缓存和本地缓存知识 什么是缓存 程序经常要调用的对象存在内存中,方便其使用快速调用,不必去数据库或者其他持久化设备中查询,主要是提高性能 DNS 缓存.前端缓存.代理服务器缓存Nginx,应用程序缓存(本地缓存,分布式缓存),数据库缓存 分布式缓存 与应用分离的缓存组件或服务,与本地应用隔离一个独立的应用程序,多个应用可直接共享缓存 常见的分布式缓存 Redis,Memcached…

2021年4月29日 0条评论 6点热度 阅读全文

道阻且长,行则将至。请相信我,你一定会更优秀! 「 Redis 做分布式锁,没那么简单。调整好心态,保证你有收获」 本文我们主要聊 redis实现分布式锁,别的不聊。先来三个问题热热身: 一个 setnx 就行了?还有人认为 incr 也可以? 再加个超时时间就行了? 你写的分布式锁,你确认你敢在生产环境用吗? 热身完毕,下边我和你一起学习下 Redis分布式锁到底该怎么玩?  1、为什么要有分布式锁? JUC提供的锁机制,可以保证在同一个JVM进程中同一时刻只有一个线程执行操作逻辑; 多服务多节点的情况…

2021年4月25日 0条评论 43点热度 阅读全文

(一)前言 最近我做了个某大学智慧园区信息化的项目,当中需要用到redis双机热备,主备同步等,结合实际的运用,以及近期对redis的学习,利用业余实际写了个系列笔记,希望各位大佬多多指点,写的不对的地方欢迎指正,共同进步!本系列会持续更新,欢迎大家收藏。 (二)目录 Redis入门学习笔记(一)redis安装环境配置 Redis入门学习笔记(二)redis数据结构 Redis入门学习笔记(三)windows redis主从同步 Redis入门学习笔记(四)windows redis哨兵机制 Redis入门学习笔记…

2021年4月25日 0条评论 41点热度 阅读全文

开发微信小程序,前提是申请到一个 appId 并拿到 appSecret ,并在微信公众平台配置好小程序对应的服务器域名。 小程序可以通过两种方式获取到用户信息,并且获取到信息之后,推荐直接存到小程序的全局变量中,后续直接在全局变量中读取,无需在重新获取。 方法一: 使用 appId 新建小程序模板,在创建时,勾选中“建立普通快速启动模板”。创建成功后,在 pages/index/index.js文件中可以看到如下代码: if (app.globalData.userInfo) { this.setData({ u…

2021年4月25日 0条评论 37点热度 阅读全文

Redis集群模式与代理模式 为了解决redis主从复制或者哨兵模式一个实例存储全量的数据,内存空间可能不足的问题,需要对数据进行分区(Partitioning)。 分区的实现方式 客户端分区:例如原来一个商城的所有缓存都存在一个redis,现在按模块进行区分,订单模块放到一个redis,支付模块放到一个redis。 代理分区:客户端将请求发送给代理端,代理根据一致性哈希算法算出key对应在哪个redis实例上,然后将请求发送给对应的redis实例,最后将结果返回给客户端。 查询路由:将请求随机发给一个redis实…

2021年4月25日 0条评论 41点热度 阅读全文

最近针对Redis的基本数据结构、持久化机制、事务、主从复制和分布式锁等知识点做了系统的学习和整理,现对本次学习Redis的过程做一次思考和总结。 为什么要使用nosql(not only sql) 这个问题我们站在互联网技术中常提到的"高并发"和"高可用"关键词来思考这个问题,我是这样子理解的: 传统的关系型数据库,比如单机的MySQL的QTS只有2000~3000左右,在一些大并发的场景下,比如618活动、双11活动等场景下,数据库根本就扛不住这么大的并发量,轻而易举的就将数据库打挂了,从而导致了服务不可用。 …

2021年4月25日 0条评论 41点热度 阅读全文

redis集群监控(redis-stat) 本文来自互联网,由本人亲测,可行 ps:亲测,是这样写,可用,时间=2020-02-12 14:45   1. 环境 redis集群版本: 3.2.1 CentOS Linux release 7.2.1511 (Core) 2. 安装包 eventmachine-1.2.3.gem、redis-stat-0.4.14.gem、thin-1.5.1.gem、daemons-1.1.9.gem   gem下载网站:https://rubygems.org…

2021年4月25日 0条评论 41点热度 阅读全文

@Test public void testPipLine(){ //根据hashKey依次获取所有value List<Object> executeResult = redisTemplate.executePipelined(new RedisCallback<Object>() { @Override public Object doInRedis(RedisConnection connection) throws DataAccessException { //业务操作 for …

2021年4月25日 0条评论 42点热度 阅读全文