- 博客(20)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 跳跃表原理+代码完整
转载了参考文章的部分内容,代码自己敲了一遍,记录下来用来自己复习用。参考文章地址:http://dsqiu.iteye.com/blog/1705530本文内容框架: §1 Skip List 介绍 §2 Skip List 定义以及构造步骤 §3 Skip List 完整实现 §1 Skip List 介绍 Skip Li...
2018-03-25 14:09:56 2322 4
转载 一致性哈希原理详解(虚拟节点)
转自:http://www.cnblogs.com/haippy/archive/2011/12/10/2282943.html一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2...
2018-03-20 15:56:58 15594 3
转载 无锁队列
转载:http://coolshell.cn/articles/8239.html关于无锁队列的实现,网上有很多文章,虽然本文可能和那些文章有所重复,但是我还是想以我自己的方式把这些文章中的重要的知识点串起来和大家讲一讲这个技术。下面开始正文。关于CAS等原子操作在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare &...
2018-03-20 15:40:55 342 1
原创 reids学习笔记(十五)--Redis数据结构的使用场景总结
《论语》中说:温故而知新。学习了几天的redis如果不回头总结复习,有些小知识小细节难免忘记,今天就回顾复习并总结一下redis的中数据类型以及这些数据类型在企业中的实际应用场景。看了之前的博客你可能会有个疑问,redis那么多数据类型到底怎么用呢?又是怎么提高应答客户请求的速度呢?下面我们就来结合相关数据结构的命令看看它的用处:1.string 字符串类型。我能想到的就是:1.使用redis进行...
2018-03-16 12:39:25 641 1
原创 Redis学习笔记(十四)--sentinel运维监控
在学习本节内容之前:要复习:redis主从复制我就用第一种模型来做下面的学习跟测试,这里说个题外话,这几天学习redis打算用一个周的时间对redis有意哥初步的认识,在坚持了这些天以后,今晚学起来感觉有点累,虽然对redis的未知功能充满了好奇,但是我还是不想自己在没有状态的时候学习自己特别想学好的知识,在写这篇博客的时候做了一点心理挣扎,最总觉得自己还是不可以为自己找借口,坚持就是胜利,所以还...
2018-03-16 00:03:49 983 4
原创 Redis学习笔记(十三)--aof恢复和rdb服务器间迁移
今天处理点实际问题:1.不小心执行flushall怎么办?答:立即shutdown nosave服务器(这一条不会写入aof),因为当你flushall后可能还要号就分钟rdb(数据还没存储),这时候aof可能还没有重写,你这时候shutdown nosave服务器,防止其他进程写数据,导致aof重写,只要aof没有重写,然后手工进aof文件修改flushall相关行,这样就不会导致数据丢失。万一...
2018-03-15 19:53:27 994 2
原创 Redis学习笔记(十二)--redis运维常用命令
redis运维常用的命令:下面几个命令的实例:1.time:显示服务器时间,时间戳(s)、微秒数2.观察当前数据库一共有多少个key3.bgrewriteaof重写,看下面的aof文件大小现在是103,我故意操作两次abc,执行重写命令:结果:现在变成了63,没有冗余。减小aof占据的内存。aof中只保存了最后一次set的value4.手动保存rdb----save这里要说一下在数据量大的时候bg...
2018-03-15 19:09:54 3006 2
原创 Redis学习笔记(十一)--主从复制
好,今天就让我们学习一下redis的主从配置,即redis的服务器集群,在一个大的网站中,redis如果做存储的话,不可能孤零零的只有redis来处理,这就需要搭建集群,那么集群有什么好处呢?1.主从备份,防止主机宕机。2.读写分离,分担master的任务。3.任务分离,如从服分别担任备份工作和计算工作等。那么怎么设置redis的服务器集群呢?它的操作比mysql简单多了。redis集群模型:再来...
2018-03-14 22:09:22 361 2
原创 Redis学习笔记(十)--aof日志持久化
aof原理:来看一看aof的配置:这是是否开启aof功能的开关这是aof工作的三种方式:#每一个命令都立即同步到aof,安全但是速度慢#折衷方案,每秒写一次#写入工作交给操作系统,有操作系统判断缓冲区大小统一写到aof,同步频率低,速度快。#正在导出rdb快照的过程中要不要停止同步aof#aof文件大小比起上次重写时的大小,增长率%100时重写。#aof文件,至少超过64m时重写。注意:在dump...
2018-03-14 20:56:10 2706 2
原创 Redis学习笔记(九)--rdb快照持久化
持久化方式:即把数据存储在断电后不会丢失的设备中,通常是硬盘。常见的持久化方式:主从:通过从服务器保存和持久化(主服务器往内存写,从服务器往硬盘写),如mongDB的replication sets设置。日志:操作生成相关日志,并通过日志来回复数据。couchDB对于数据内容,不修改,只追加(日志文件一体),则文件本身就是日志,不会丢失数据。下面看redis的持久化方式:1.rdb快照持久化每隔n...
2018-03-14 18:52:29 443 1
原创 Redis学习笔记(八)--频道发布和消息订阅
消息的订阅和发布可以比喻成广播台和收音机,形象地说就是王广播台里面发送消息,这些收音机关注或者说订阅了这个台,也可以比喻成微信,系统管理员和普通成员,系统管理员发送消息,普通成员都能接收到。看redis的指令:publish-------频道----->subscribe1.publis news 内容 --发布新闻内容2.subscribe news --订阅新闻频道适合做在线聊天,消息推...
2018-03-14 13:46:34 1057 1
原创 Redis学习笔记(七)--redis事务及锁应用
1.购票,追求写入速度,追求事务一致性安全性。redis相比mysql来说支持的事务相对简单。2.mysql和redis事务的对比mysql和redis事务对比 MysqlRedis开启start transactionmulti语句普通sql普通命令失败rollback回滚discard取消成功commit(提交)exec注意:rollback和discard的区别:如果成功执行了两条语句,第三...
2018-03-13 22:34:21 304 3
原创 Redis学习笔记(六)--hash结构及命令详解
hash结构在这就不做赘述了。-----hash命令:1.hset key field(叫field 其实是跟redis的key区分) value把key中filed的值设为value2.hmset key field1 value1 field2 value2...一下设置多个3.hget key filed获得key中filed对应的value4.hmget5.hgetall key 查看ke...
2018-03-13 20:34:37 291 1
原创 Redis学习笔记(五)--order set结构及命令详解
order set 有序集合因为原来是无需的,那么怎么变有序呢?我们就需要一个有序因子(例如:年龄,身高等)我们把这个因子叫score下面来看有序集合的命令,注意与set的区别:set------有序集合的增删差1.zadd key score1 value1 score2 value2 ...添加元素2.zrange key start stop [withscores] 把集合排序后返...
2018-03-13 20:05:01 932 2
原创 Redis学习笔记(四)--set结构及命令详解
set-集合特点:1.无序性2.唯一性:集合中的值是唯一不重复的3.确定性:这个集合的描述是确定的set 的命令:1.sadd key value 可以一次添加多个,但是不能添加相同的(唯一性)2.smembers key 查看key中的元素,查看的结果跟添加的顺序无关(无序性)3.srem key value 删除集合中的元素4.spop key 返回并删除集合中的一个随机元素(这个用于抽奖很合...
2018-03-13 17:12:44 276 1
原创 Redis学习笔记(三)--位图法统计活跃用户
首先来看一个真实案例:1.国外一个打的网站有1亿用户,用户有频繁登陆的,也有不经常登陆的2.如何来记录用户的登陆信息3.如何来查询活跃用户,比如一周内登陆三次?方案一:建用户表,uid:logtime登陆一次logtime+1,这里有个明显问题,如此大的客户量,每天一个用户的登陆次数不确定,不可能把如此巨大的信息量存入数据库(虽然可以解决),而且查询比较会很“累”。方案二:用redis做个link...
2018-03-12 23:58:20 2160
原创 Redis学习笔记(二)--list结构及命令详解
书接上文Redis学习笔记(一) 2-----------------list结构及命令详解1.lpush key value从左面往链表中添加 rpush key value 从右面添加2.lrange key start stop 返回链表中[start, stop]中的元素3.lpop rpop弹出元素4.lrem key count value 比如 lrem key 3 b 从链表左开...
2018-03-12 21:39:04 432 2
原创 Redis学习笔记(一)--redis安装和字符串命令详解
1.Redis是什么?是一个高级的key-value存储系统,用来存储哈希结构,字符串,集合,有序集合,链表,因此通常用来提供数据结构服务。2.redis和memcached相比的特别之处:1.redis可以用来做存储(storge),而memcached用来做缓存(cache),这主要得益于redis的“持久化”功能;2.存储的数据有“结构”,memcached只能存储一种数据类型--“字符串”...
2018-03-12 20:31:03 391 1
原创 微信后台架构浅析--读写扩散技术
首先我写这篇博客所要探讨的问题是什么,自己查询资料得出的结论或者理解记录下来,产生了这篇博客问题背景: 我相信现在几乎我们每个人都在使用微信,那么你知道微信平台每天的信息量有多大吗?2017年微信官方在知名论坛上公布了其今年9月平均日登陆用户达9.02亿,同比增长17%。你在这9亿人里吗?每天有如此多的用户使用微信,你能想象到每天发送多少微信消息呢?380亿!是不是很吃惊...
2018-03-09 21:00:57 9238 3
转载 epoll原理详解(最清晰)
本文转载自:epoll讨论我只是把内容搬运过来做个记录,方便自己以后回头看。第一部分:select和epoll的任务 关键词:应用程序 文件句柄 用户态 内核态 监控者要比较epoll相比较select高效在什么地方,就需要比较二者做相同事情的方法。要完成对I/O流的复用需要完成如下几个事情:1.用户态怎么将文件句柄传递到内核态?2.内核态怎么判断I/O流可读可写?3.内核怎么通知监控者有I/O...
2018-03-08 23:01:09 1569 2
NAT类型检测+免费的STUN服务器.rar
2020-04-23
汇编指令大全.pdf
2020-03-29
Redis设计与实现[带书签]
2018-07-24
Linux内核设计的艺术pdf
2018-07-24
深入理解mysql.pdf
2018-07-03
二维平面求最近点对相关小问题求解答
2017-03-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人