![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
海涛czwx
努力工作,努力生活
展开
-
Redis Cluster为什么有16384个槽?
原译: 1、正常的心跳包携带节点的完整配置,可以用幂等方式替换旧节点以更新旧配置。 这意味着它们包含原始形式的节点的插槽配置,它使用带有16k插槽的2k空间,但使用65k插槽时将使用高达8k的空间。2、同时,由于其他设计权衡,Redis Cluster不太可能扩展到超过1000个主节点。 因此,16k处于正确的范围内,以确保每个主站有足够的插槽,最多1000个主站,但足够小的数字可以轻松地将...原创 2019-10-14 17:37:03 · 1760 阅读 · 0 评论 -
redis简介
redis是一个key-value的NoSQL产品 (NoSQL,即Not Only SQL,泛指非关系型的数据库产品,这里不做过多介绍),它和Memcached产品有些类似,为了保证高效性,数据都是缓存在内存中,但是它的value的数据类型更加丰富,包括string(字符串)、list(链表)、set(集合)、sorted set(有序集合)和hash(散列),而且redis为了保证数据原创 2017-08-03 22:52:00 · 377 阅读 · 0 评论 -
redis常见的数据类型
redis常见的5种数据类型分别是: * string(字符串) * list(链表) * set(集合) * sorted set(有序集合) * hash(散列or字典) 在介绍这5种类型前,我们先来介绍一下redis的全局操作指令: 查 keys my* 获取当前数据库中所有以my开头的key exists mykey 若不存在,返回0;存在返回1 se原创 2017-08-12 00:00:35 · 341 阅读 · 0 评论 -
数据库与缓存一致性策略
问题:怎么保持缓存与数据库一致? 要解答这个问题,我们首先来看不一致的几种情况。我将不一致分为三种情况: 1. 数据库有数据,缓存没有数据; 2. 数据库有数据,缓存也有数据,数据不相等; 3. 数据库没有数据,缓存有数据。 大多数人使用的策略,叫做 Cache Aside Pattern,简单来说就是: 1. 首先尝试从缓存读取,读到数据则直接返回;如果读不到,就读数据库,并将数据会...原创 2018-07-18 09:40:44 · 295 阅读 · 0 评论 -
分布式锁 -- 基于redis实现
基于Redis实现的锁机制,主要是依赖redis自身的原子操作,例如: SET user_key user_value NX PX 100 redis从2.6.12版本开始,SET命令才支持这些参数: NX:只在在键不存在时,才对键进行设置操作,SET key value NX 效果等同于 SETNX key value PX millisecond:设置键的过期时间为millisecon...原创 2018-09-26 15:42:09 · 252 阅读 · 0 评论 -
浅谈并发扣库存
秒杀的场景有很多,比如:抢购、抢票、抢红包等等。总之,就是在极短时间内有大量的请求。 我们都知道,这种系统设计的大方向就是限流,即通过层层过滤,最终只让相对较少的请求进入到核心业务处理层。 这里不谈秒杀设计,不谈使用队列等使请求串行化,就谈下怎么用锁来保证数据正确,就是已经到减库存那一步了,在这一步中如果保证不超卖。 用队列的话,可以是Java自动的队列,也可以用Redis的LPUSH RP...原创 2019-04-05 16:34:38 · 617 阅读 · 0 评论