通用命令  参考 http://redisdoc.com/index.html 1. keys  #查看所有key 时间复杂度:O(N), N 为数据库中 key 的数量. 127.0.0.1:6379> keys *           keys命令一般不在生产环境使用!           原因:生产环境键值对比较多:意义不大           想用keys命令怎么办?           ①热备从节点(从节点一般不在生产环境使用,可以在从节点上执行此命令)           ②使用sc…
一.Redis是什么 * 开源 * 基于键值的存储服务系统 * 支持多种数据结构 * 高性能,功能丰富 二.Redis特性 ♦️ 概述 * 速度快 * 支持持久化 * 支持多种数据结构 * 支持多种编辑语言 * 功能丰富 * 简单(代码短小精悍,使用简单) * 主从复制 * 高可用.分布式(主从复制是实现此的基础) ♦️ 特性详解 2.1 速度快 官方数据  10W OPS(operation per second) 为什么这么快? 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,…
一.Redis  Sentinel架构     二.redis sentinel安装与配置 四.客户端连接Sentinel            四.实现原理—— 故障转移演练(客户端高可用) 五.实现原理—— 故障转移演练(服务端日志分析:数据节点和sentinel节点) 六.三个定时器 七.主观下线和客观下线 八.领导者选举 九.高可用读写分离…
一.单机有什么问题 1.机器故障 2.容量瓶颈 3.QPS瓶颈 二.主从复制 1.数据副本(高可用.分布式基础) 2.拓展读性能(读写分离)  简单总结: 三.主从复制配置 四.主从复制配置-实验演示 五.runid和复制偏移量 主Redis每次向从Redis传播N个字节的数据时,都会在自己的复制偏移量上加N: 同理,从Redis每次接收到N个字节时,也会在自己的复制偏移量上加N. 六.全量复制 redis什么时候会发生全量复制? a) redis slave首启动或者重启后,连接到master…
一.结构和命令 1.字符串键值结构 key是字符串,value可以是字符串.数字.二进制.json等: redis的key和string类型value限制均为512MB. 2.使用场景 ♦️ 缓存 ♦️ 计数器 ♦️ 分布式锁 3.命令 ♦️ get ♦️ set ♦️ del ♦️ incr     ♦️ decr ♦️ incrby  ♦️ decrby       ♦️ mset  ♦️ mget ♦️ getset  ♦️ append  ♦️ strlen 二.快速实战 1. 记录网站…
一.慢查询日志 慢查询日志帮助开发和运维人员定位系统存在的慢操作.慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详细信息)记录下来.Redis客户端一条名利分为如下四部分执行: 说明:①慢查询日志只是统计步骤3)执行命令阶段 ②客户端超时不一定慢查询,但是慢查询是客户端超时的一个可能原因. 二. 慢查询的配置参数 2.1 慢查询的预设阀值  slowlog-log-slower-than slowlog-log…
一.呼唤集群 二.数据分布概论      三.哈希分布 1.节点取余 2.一致性哈希 添加一个node5节点时,只影响n1和n2之间的数据   3.虚拟槽分区 四.基本架构 五.redis cluster 架构 六.Redis Cluster安装配置 1.原生命令安装 2.官方工具安装…
一.持久化概念 二.持久化方式 三.redis持久化方式之——RDB 1.什么是RDB 在 Redis 运行时, RDB 程序将当前内存中的数据库快照保存到磁盘文件中, 在 Redis 重启动时, RDB 程序可以通过载入 RDB 文件来还原数据库的状态. 2.触发机制方式 主要三种方式:save:bgsave;自动生成RDB 2.1  save   2.2 bgsave  save 与 bgsave对比 2.3 自动生成RDB 不使用客户端 3.触发机制-不容忽略方式 4.RDB试验 5.RD…
一.模型 二.主要API 1.publish(发布命令) 2.subcribe(订阅) 3.取消订阅(unsubcribe) 4.其他API 三.消息队列功能 redis实现消息队列功能 应用场景:抢红包…
一.回忆通信模型 二.流水线 1.什么是流水线 2.pipeline-Jedis实现 3.与原生M(mget,mset等)操作对比 M操作是原子操作 pipeline命令是非原子的,Redis服务器会对其命令集进行拆分. 三.使用建议…
一.结构 特点:无序,无重复,支持集合间操作 二.主要API smembers : 无序:(会阻塞)小心使用,可用sscan代替 spop: 从集合中弹出元素,每次只能弹出一个: 三.实战 抽奖系统 -spop  -srandmember 喜欢.赞.踩  Redis实现开发者头条页面点赞功能 给用户添加标签 四.集合间操作 集合间操作实战:微博共同关注 user:1:fans [2,3,4] //关注用户1的粉丝 user:1:follows [2,5,7,8] //用户1关注的 user:2:…
1. 三种启动方式 ♦️  最简启动 ./redis-server 使用Redis默认配置进行启动; ♦️  动态参数启动 * redis-server --port 6380  更改端口为6380并启动 ♦️  配置文件启动 redis-server  configPath (将需要的配置写在配置文件中) 三种方式对比:    生产环境选择配置文件启动    单机多实例配置文件可以用端口区分开 2. Redis客户端连接 ./redis-cli  -h 127.0.0.1 -p 6379 Re…
一.数据结构 集合与有序集合,列表与有序集合的对比 二.主要API zadd 将一个或多个 member 元素及其 score 值加入到有序集 key 当中. zrem 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略. zscore 返回有序集 key 中,成员 member 的 score 值. zincrby  为有序集 key 的成员 member 的 score 值加上增量 increment . zcard  返回元素的总个数 三.实战 排行榜  参考 :基于redis的…
一.结构 Mapmap结构: filed 不能相同,value可以相同. 二.重要指令 ♦️ HSET  ♦️ HGET  ♦️ HDEL ♦️ Hlen  ♦️ HEXISTS ♦️HGETALL  ♦️HVALS  ♦️HKEYS 使用hgetall注意:数据多的时候,获取很慢! 其他命令: ♦️ hsetnx  ♦️ hincrby  ♦️ hincrbyfloat 三.实战 1.  记录网站每个用户个人主页的访问量 hincrby  user:1:info  pageview count…
一.缓存的收益与成本 1.收益 2.成本 二.使用场景 三.缓存的更新策略 四.缓存颗粒度控制 五.缓存穿透 六.无底洞问题 七.热点key的重建优化  …
一.简介 二.应用场景 三.API 1.geoadd 2.geopos 3.geodist 4.georadius 四.相关说明…
一.简介 二.API Demo 三.使用经验…
一.初步认识 二.API 1.setbit 2.getbit 3.bitcount 4.bitop 5.bitpos 三.位图使用 四. 使用经验…
1.pom文件 <!--redis--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.0.2.RELEASE</version> </dependency> <dependency> <groupId>…
一.结构 key - value 结构,value是一个有序队列. 可进行左边的添加及弹出,右边的添加及弹出. 可获取列表的长度,删除列表中指定元素,获取列表的子列表,按照索引获取列表的指定元素. 特点:列表有序.可重复.左右两边插入弹出. 二.主要API RPUSH  :将一个或多个值 value 插入到列表 key 的表尾(最右边). LPUSH   :  将一个或多个值 value 插入到列表 key 的表头 LINSERT : LINSERT key BEFORE|AFTER pivot…
一.单线程为何这么快 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架.epoll中的读.写.关闭.连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间. 参考:一句话讲透epoll 二.单线程需要注意点 1) 一次只运行一条命令 2)拒绝长(慢)命令 3)其实不是单线程,进行某些操作时候(如下),有独立线程来做 fysnc file de…
1.fork操作 2.子进程开销和优化 3.AOF阻塞…
Redis Sentinel主从高可用方案 本文介绍一种通过Jed和Sentinel实现Redis集群(主从)的高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定), 附:Redis Cluster集群主从方案:http://www.cnblogs.com/soul-wonder/p/8891256.htmlRedis Sentinel主从高可用方案:http…
Redis主从配置及通过Keepalived实现Redis自动切换高可用 [日期:2014-07-23] 来源:Linux社区  作者:fuquanjun [字体:大 中 小]   一:环境介绍: Master: 192.168.1.4 Slave: 192.168.1.5 Virtural IP Address (VIP): 192.168.1.253 二:设计思路: 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby: 当 Master 挂掉…
一般情况下yum安装redis的启动目录在:”/usr/sbin” :配置目录在”/etc/redis/”在其目录下会有默认的redis.conf和redis-sentinel.conf redis高可用配置: 配置哨兵(redis-sentinel),我的所有配置文件都放在/etc/redis-cluster/目录下  1.创建redis-sentinel_26379.conf,主要内容如下: #基本配置 port daemonize yes logfile "/var/log/redis/s…
1:redis 是用c语言来实现的,速度快 持久化 单线程 复杂的数据类型有bitmap和hyperloglog和geo地理信息2:高可用.分布式 v2.8开始支持Redis-Sentinel(哨兵)高可用 v3.0开始支持Redis-Cluster 分布式3:典型应用场景 缓存系统 计数器(如微博评论数,转发数以及点赞数) 消息队列 排行榜(sortset) 社交网络(set并集交集差集) 实时系统 4:可执行文件说明 redis-server Redis服务器 redis-cli Redis…
Redis主从复制 在开始实现redis的高可用之前,首先来学习一下如何实现redis的主从复制,毕竟高可用也会依赖主从复制的技术. Redis的主从复制,可以实现一个主节点master可以有多个从节点slave节点,一个slave节点也可以作为下面很多从节点的主节点,类似于mysql的级联复制. Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件传输给slave,然后再将dump后的操作实时同步到slave中.让从服务器(slave ser…
背景: 之前通过Redis Sentinel 高可用实现说明和Redis 复制.Sentinel的搭建和原理说明大致已经介绍了sentinel的原理和实现,本文再次做个简单的回顾.具体的信息见前面的两篇文章说明,本文要实现的sentinel是通过2个redis数据节点和3个sentinel节点来达到高可用,目标是希望标准化Sentinel的安装部署. 环境: Redis版本:Redis-3.2.8 系统版本:Ubuntu 14.04 服务器 :192.168.1.55,192.168.1.56,…
前言:最近在看关于redis缓存方面的知识,今天就来个 Redis sentinel 高可用架构,实战开始之前,先看看sentinel的概念 什么是redis-sentinel Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发…