![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis Memcache
文章平均质量分 70
csdn265
这个作者很懒,什么都没留下…
展开
-
redis中使用 check-and-set 操作实现乐观锁
WATCH 命令可以为 Redis 事务提供 check-and-set (CAS)行为。被 WATCH 的键会被监视,并会发觉这些键是否被改动过了。 如果有至少一个被监视的键在 EXEC 执行之前被修改了, 那么整个事务都会被取消, EXEC 返回空多条批量回复(null multi-bulk reply)来表示事务已经失败。举个例子, 假设我们需要原子性地为某个值进行增 1转载 2016-04-27 13:48:51 · 538 阅读 · 0 评论 -
redis使用watch完成秒杀抢购功能
Redis使用watch完成秒杀抢购功能:使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表。它的优点如下:1. 首先选用内存数据库来抢购速度极快。2. 速度快并发自然没不是问题。3. 使用悲观锁,会迅速增加系统资源。4. 比队列强的多,队列会使你的内存数据库资源瞬间爆棚。转载 2017-04-26 17:24:45 · 646 阅读 · 0 评论 -
Redis集群解决方案
Redis缓存方案 数据分析:公司名+年份针对现有3000万真实数据跑测试: 机器配置:3G内存+centos虚拟机redis-benchmark测试结果:SET:20000/sGET:30000/s 统计数据:Redis的Hashkey节点数:4096平均每节点数:4000每节点涉及的转载 2017-04-26 17:22:42 · 328 阅读 · 0 评论 -
Redis一致性hash(php版)
一致性hash的使用在PHP中有三种选择分别是原生的memcache扩展,memcached扩展,还有一个是网上比较流行的flexihash类。前两者都适用于memcache但不适合Redis。php一致性hash类下载地址:http://code.google.com/p/flexihash/我们根据flexihash的应该改写了一遍Redis的应用。下面给出测试源码:转载 2017-04-26 17:22:10 · 637 阅读 · 0 评论 -
Redis消息通知系统的实现
最近忙着用Redis实现一个消息通知系统,今天大概总结了一下技术细节,其中演示代码如果没有特殊说明,使用的都是PhpRedis扩展来实现的。内存比如要推送一条全局消息,如果真的给所有用户都推送一遍的话,那么会占用很大的内存,实际上不管粘性有多高的产品,活跃用户同全部用户比起来,都会小很多,所以如果只处理登录用户的话,那么至少在内存消耗上是相当划算的,至于未登录用户,可以推迟转载 2017-04-12 18:47:43 · 709 阅读 · 0 评论 -
关于缓存雪崩和缓存穿透等问题
缓存雪崩 缓存雪崩是由于原有缓存失效(过期),新缓存未到期间。所有请求都去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。 (1) 碰到这种情况,一般并发量不是特别多的时候,使用最多的解决方案是加锁排队。[java] view plain copy publ转载 2017-02-20 14:03:44 · 2473 阅读 · 0 评论 -
Redis应用场景
1. MySQL+Memcached架构的问题Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销。各个Slab按需动态分配一个page的内存(和4Kpage的概念不同转载 2016-11-29 22:51:12 · 322 阅读 · 0 评论 -
基于Redis实现分布式锁
背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍转载 2016-11-15 12:24:36 · 420 阅读 · 0 评论 -
Redis操作命令总结
这篇文章主要介绍了Redis操作命令总结,本文讲解了key pattern 查询相应的key、字符串类型的操作、链表操作、hashes类型及操作、集合结构操作、有序集合、服务器相关命令等内容,需要的朋友可以参考下一、key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符 *、?、[] (2)randomkey:返回转载 2016-06-06 10:18:46 · 385 阅读 · 0 评论 -
memcached(六)调优经验
一 监控 查看memcahe服务器的状态,通常我们使用2个命令 1)telnet 127.0.0.1 11211 查看全局 stats 查看slab stats slabs 查看item stats items 2)vmstat 1 -S M 二 调优 根据笔者个人经验,memcached调优需要注意一下几点。 1)节点过热 如果me转载 2016-05-19 17:55:07 · 2716 阅读 · 0 评论 -
memcached 并发原语CAS与GETS操作
最近笔者自己的项目中,遇到了乐观锁的需求。但是redis没有这个操作,无奈,看了memcache天然的支持这种并发原语,即:GETS和CAS操作。因此准备打算继续使用REDIS,业务没有那么强的时序执行要求,因此可以使用没有CAS的算法在某种程度上解决。 我们为什么要使用这种并发原语呢?如果是单机版的,我们可以通过通过加锁同步就可以解决执行时序的问题。但是我们的应用是分布式的,无状态的转载 2016-05-19 17:51:22 · 1157 阅读 · 0 评论 -
阿里公司的 Redis 开发规范
本文介绍了在使用阿里云 Redis 的开发规范,从键值设计、命令使用、客户端使用、相关工具等方面进行说明,通过本文的介绍可以减少使用 Redis 过程带来的问题。一、键值设计1. key 名设计(1)【建议】: 可读性和可管理性以业务名 (或数据库名) 为前缀 (防止 key 冲突),用冒号分隔,比如业务名: 表名:idugc:video:1(2)【建议】:简洁性保证语...转载 2019-04-07 23:53:35 · 277 阅读 · 0 评论