随笔分类 -  Redis

摘要:硬件环境 本文适用的硬件环境如下 Redis已经成功安装,安装路径为/home/idata/yangfan/local/redis-3.2.1。 我们要在单台机器上搭建Redis集群,方式是通过不同的TCP端口启动多个实例,然后组成集群。 1、启动Redis多个实例 我们在Redis安装目录下创建目 阅读全文
posted @ 2017-10-16 15:39 扎心了老铁 阅读(37105) 评论(2) 推荐(5)
摘要:Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互。 一般来说客户端从提交请求到得到服务器相应,需要传送两个tcp报文。 设想这样的一个场景,你要批量的执行一系列redis命令,例如执行100次get key,这时你要向redis请求10 阅读全文
posted @ 2017-10-10 18:04 扎心了老铁 阅读(27932) 评论(0) 推荐(1)
摘要:之前写过一篇博客,里面吭哧吭哧半天,使用Redis实现了一个分布式锁。 今天闲来没事看源码,突然发现redis set命令的用法可以直接指定nx和ex,文档中没有明说这是个原子方法,但是后面给出了一个例子使用set nx ex的方法实现了redis锁。 感觉应该是原子性的,挺好。 相比这篇文章里的方 阅读全文
posted @ 2017-09-26 18:06 扎心了老铁 阅读(682) 评论(0) 推荐(0)
摘要:本文记录一些redis事务相关的原理。 1、基本概念 1)什么是redis的事务? 简单理解,可以认为redis事务是一些列redis命令的集合,并且有如下两个特点: a)事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 阅读全文
posted @ 2017-09-17 15:08 扎心了老铁 阅读(13655) 评论(0) 推荐(2)
摘要:在这一篇中我们实现了不通过zk来编写codis集群proxys的api,http://www.cnblogs.com/kangoroo/p/7481567.html 如果codis集群暴露zk给你的话,那么就方便了,探活和故障摘除与恢复codis集群都给你搞定了,你只需要监听zookeeper中实例 阅读全文
posted @ 2017-09-06 17:00 扎心了老铁 阅读(1064) 评论(0) 推荐(0)
摘要:在使用codis时候,我们遇到的场景是,公司提供了HA的Proxy(例如N个),但是不暴露zookeeper(也就是说没有codis后端服务列表)。 如果暴露zk的话,可以看这一篇,http://www.cnblogs.com/kangoroo/p/7485760.html 要求在开发客户端api的 阅读全文
posted @ 2017-09-05 19:38 扎心了老铁 阅读(1454) 评论(0) 推荐(0)
摘要:对这段时间redis性能调优做一个记录。 1、单进程单线程 redis是单进程单线程实现的,如果你没有特殊的配置,redis内部默认是FIFO排队,即你对redis的访问都是要在redis进行排队,先入先出的串行执行。 之所以能够保持高性能是因为以下3点: 1)内存操作 2)数据结构简单 3)大多数 阅读全文
posted @ 2017-08-26 18:16 扎心了老铁 阅读(1347) 评论(0) 推荐(0)
摘要:1、单机锁 考虑在并发场景并且存在竞态的状况下,我们就要实现同步机制了,最简单的同步机制就是加锁。 加锁可以帮我们锁住资源,如内存中的变量,或者锁住临界区(线程中的一段代码),使得同一个时刻只有一个线程能访问某一个区域。 如果是单实例(单进程部署),那么单机锁就可以满足我们的要求了,如synchro 阅读全文
posted @ 2017-08-07 12:31 扎心了老铁 阅读(1880) 评论(0) 推荐(1)
摘要:现在用redis缓存热数据越来越常见了,甚至一些配置,开关等等的东西也写到redis里。原因就是redis简单高效。redis里的数据也越来越重要了,例如一些业务的中间数据会暂时存放在redis里,所以限制redis的访问还是很有必要。 本文通过几个手段说一下生产环境中redis的访问权限控制。 1 阅读全文
posted @ 2017-08-03 14:07 扎心了老铁 阅读(984) 评论(1) 推荐(1)
摘要:本文介绍如何通过sentinel监控redis主从集群,并通过jedis自动切换ip和端口。 1、配置redis主从实例 10.93.21.21:6379 10.93.21.21:6389 10.93.21.21:6399 主从同步关系 master:10.93.21.21:6379 slave:1 阅读全文
posted @ 2017-07-09 22:51 扎心了老铁 阅读(2798) 评论(0) 推荐(1)
摘要:缘起: 今天早晨收到报警,服务不干活了,赶紧起来看问题。。。 为了尽快让服务可用,尝试重启服务,发现服务起不来,报错 看起来是redis挂了,但是发现redis的进程还在。进一步看服务的错误日志: redis持久化失败,服务配置了redis rdb持久化方式,为啥失败呢?内存和硬盘看了下,果然硬盘满 阅读全文
posted @ 2017-07-09 15:19 扎心了老铁 阅读(5032) 评论(0) 推荐(1)
摘要:本文探讨在web开发中如何解决并发访问带来的数据同步问题。 1、需求: 通过REST接口请求并发访问redis,例如:将key=fusor:${order_id} 中的值+1; 2、场景: 设想,多线程对key=fusor:${order_id}并发访问触发了竞态条件,例如两个线程同时发现key=f 阅读全文
posted @ 2017-06-08 15:36 扎心了老铁 阅读(9025) 评论(1) 推荐(0)
摘要:前言 redis支持发布订阅模式,在这个实现中,发送者(发送信息的客户端)不是将信息直接发送给特定的接收者(接收信息的客户端),而是将信息发送给频道(channel),然后由频道将信息转发给所有对这个频道感兴趣的订阅者。 发送者无须知道任何关于订阅者的信息,而订阅者也无须知道是那个客户端给它发送信息 阅读全文
posted @ 2017-04-17 13:57 扎心了老铁 阅读(814) 评论(0) 推荐(0)