redis
介绍redis
奔跑的扫地僧
在代码的世界中,知识需要分享,代码需要open source,世界才能大一统。世界本没有界限,人类的思维限定了国界。
展开
-
Redis 哨兵机制(Sentinel)
Sentinel (哨兵)是Redis HA的解决方案之一,由一个或多个Sentinel实例组成的Sentinel系统可以监控任意多个主服务器,以及这些主服务器属下的所有服务器。当被监视的主服务器进入下线状态时,自动将下线主服务器,其属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个R原创 2021-09-12 17:23:53 · 304 阅读 · 0 评论 -
Redis---主从复制实现原理
大家在实际项目中用redis时为了达到HA(High available 高可用),通常会采用主从复制作为应对异常的方案之一。那么redis中如何实现主从复制呢?首先低版本的redis这里就不介绍了,从redis2.8版本开始,使用PSYNC命令来实现复制的同时进行同步操作。PSYNC命令具有完整重同步(full resynchronization)和部分重同步(part resynchronization)从服务器第一次请求时,肯定是完整同步,但是第二次,第三次呢?如何判断部分还是全部同步原创 2021-09-11 08:51:56 · 268 阅读 · 0 评论 -
Redis持久化---RDB文件介绍
Redis的持久化,我们通常采用RDB和AOF两种方式。最近在看《Redis设计与实现》这本书,摘录一种重点,介绍下RDB方式。此外,AOF文件的更新频率通常比RDB高,所以有如下的特点:服务器在载入RDB文件的期间,会一直处于阻塞状态,直到载入工作完成为止。简单介绍下RDB文件的格式:总结:...原创 2021-09-08 21:43:49 · 480 阅读 · 0 评论 -
redis集群---主从复制以及哨兵机制理论知识点
直接上图:原创 2021-03-30 21:53:57 · 99 阅读 · 0 评论 -
redis分布式锁总结---watch dog &&redisson
最近迷恋上画图总结,直接上图原创 2021-03-29 23:19:34 · 252 阅读 · 0 评论 -
redis6.0为什么采用多线程?
废话不多说,直接上图,总结原创 2021-03-28 10:44:46 · 112 阅读 · 0 评论 -
Redis数据库专题017---缓存穿透、击穿、雪崩介绍
redis缓存穿透:缓存访问的基本流程(1)应用访问缓存,假如数据存在,则直接返回数据(2)数据在redis不存在,则去访问数据库,数据库查询到了直接返回应用,同时把结果写回redis(3)数据在redis不存在,数据库也不存在,返回空,一般来说空值是不会写入redis的,如果反复请求同一条数据,那么则会发生缓存穿透解决方案是可以为这个key设置一个空值,同时写入redis,下次请求的时候就不会访问数据库,但是如果每次请求的是不同的key,同时这个key在数据库中也是不存在的,那这样依然原创 2021-03-08 16:40:11 · 112 阅读 · 0 评论 -
redis数据库专题016---redis是单线程为什还这么快?
原创 2021-03-07 23:25:51 · 87 阅读 · 0 评论 -
redis数据库专题015---redis中数据的锁
补充下redis中锁的命令:原创 2021-03-07 23:07:51 · 102 阅读 · 0 评论 -
redis数据库专题014---Sorted set的底层实现
相信大家会有疑问,redis的sorted set为什么能排序那么快,这几天大致了解了下redis中sorted set的底层实现,总结如下:问题:排序是怎么实现的,增删改查的速度才能这么快?答:skip list(跳跃表)的底层结构。每个元素插入的时候,随机造层。每个元素根据自己的出现的次数造层。每次插入的元素进行指针地址的更改。然后每次再查询的时候,速度就很快了。(跳跃表,我们可以理解为类似像二叉树一样的几层结构那样,只是各个节点之间通过链表的结构相互连接)...原创 2021-03-07 23:05:15 · 189 阅读 · 0 评论 -
redis数据库专题013---String类型的二进制安全
redis中String类型的特点,总结了下,用如下图进行展示:原创 2021-03-07 22:58:27 · 153 阅读 · 0 评论 -
Redis扯淡介绍
Redis介绍REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis和ehcache不一样的是,ehcache可以看做一个嵌入式的缓存框架,而redis是一个独立的应用服务(像MYSQL一样),既可以提供缓存功能,还可以把数据持久化到磁盘上;Redis提供了一些丰富的数据结构,包括 lis...原创 2020-03-31 11:11:01 · 202 阅读 · 0 评论 -
redis数据库专题012---持久化
redis 持久化关系型数据库持久化:例如mysql 任何增删改查都是在硬盘上做的操作。断电之后,硬盘上的数据还是存在的。首先是基本点共识:内存:高效、断电数据就会消失硬盘:读写速度慢于内存,断电数据依旧存在非关系型数据库 redis 默认情况下,所有的增删改查,数据都是在内存中进行操作。断电以后,内存中的数据时不存在的。断电以后,redis的部分数据会丢失,丢失的数据保存在内存中2种redis存在持久化操作一、RDB : redis 默认的持久化机制,相当于照快照,保存..原创 2021-02-12 10:06:49 · 134 阅读 · 2 评论 -
redis数据库专题011---事务
Redis 数据库的事务不同于传统的关系型的数据库,它的事务是为了保证redis语句的批量执行。具体它的命令,见下图:原创 2021-02-10 17:20:46 · 131 阅读 · 0 评论 -
redis数据库专题010---数据库操作命令介绍
redis数据库是有自己的数据的,它的数据库默认有16个数据库,0-15个数据库。我们通常使用的默认数据库是0号数据库。切换数据库的命令:select 数据库名数据库清空命令:flushdbredis服务器数据的清空命令:flushall移植数据库的命令:把某个键值对进行数据库移植 move newkey 1(1代表移植的目的数据库序号)...原创 2021-02-10 16:38:00 · 96 阅读 · 0 评论 -
redis数据库专题009---消息的订阅与发布命令
redis中消息的订阅预发布,一般用于新闻的订阅与发布。具体的命令如下:subscribe channel 命令:订阅频道 例如:subscribe television 订阅television这个频道psubscribe channel * 命令:批量订阅频道publish channel content 命令: 发布消息,在指定的频道中发布消息 例如:publish television "CCTV5 News"...原创 2021-02-10 16:29:09 · 149 阅读 · 0 评论 -
redis数据库专题008---通用命令操作
前面几个专题 写了redis 5种数据类型的基本操作命令。下面写一篇它的针对这5中基本数据类型的通用操作命令。redis 通用命令:keys pattern命令: 获取pattern所匹配的key例如:keys * 查询所有的key*代表0个或者多个任意字符?表示任意一个字符串例如:匹配key中包含name的key: keys *name*del 命令:del key1 key2 key3exists key命令: 判断该key是否存在 1表示存在,0表示不存在...原创 2021-02-10 09:59:45 · 92 阅读 · 0 评论 -
redis数据库专题007---有序的Set增删改查
set 是一种非常方便的结构,但是数据时无序的。redis中提供了一个sorted set ,每添加一个值都有一个对应的分数,通过这个分数进行排序。sorted set使用的场景:sorted set基本上redis最有用的一种数据结构,非常适合做海量的数据的排行榜。如下介绍下简单的命令:增加:zadd key score member score1 member1 score2 member2获取值操作zscore key member 返回指定成员的分数zcard k..原创 2021-02-10 08:36:48 · 194 阅读 · 2 评论 -
redis数据库专题006---Set增删改查
我们知道,在java中的set是无序的,且不可以重复。然而在redis中涉及到两大数据集合的并集、交集、差集的运算时,我们通常采用set 数据格式。这样避免了Java中,必须循环两层的套路。实际利用的例子,例如网站缓存网站会员数据,登录时进行会员事实的判断。在redis中一个set 集合可以存下约42亿的数据增改命令sadd key values[value1、value2、value3等] 添加进去的元素是无序的删除命令srem key members[member1、membe.原创 2021-02-09 16:40:29 · 361 阅读 · 0 评论 -
redis数据库专题005---List增删改查
redis数据库中选取链表作为list的基础,没有使用数组。List的使用环境:1、做大数据集合的增删2、做任务队列。(文章结尾的一条命令,诠释经典)取值操作:lrange key start end 表示链表中从start到end的元素值,start、end从0开始计数;也可为负数,若为-1 则表示链表尾部的元素,-2则表示倒数第二个如果每次想去获取list里面的所有元素,直接可以采用 lrange list 0 -1赋值操作:lpush key values...原创 2021-02-06 19:07:34 · 379 阅读 · 0 评论 -
redis数据库专题004---Jedis的使用
之前的几篇写了redis的基本命令操作,但在实际的项目开发中。例如Java中,我们使用redis 一般都是通过Jedis进行操作的。在redis的官方网站中,Jedis、Redisson、JRedis等客户端工具。如下截图:具体使用Jedis的步骤:1、导入jar包2、确保linux上启动的redis服务端可以访问。一般需要配置防火墙3、写一个Junit测试单实例连接redis数据库4、写一个Jedis连接池5、优化一下,封装一个Jedis工具类over原创 2021-02-06 10:26:16 · 112 阅读 · 0 评论 -
redis数据库专题003---hash类型的增删改查
redis 中的hash命令可以看成具有String key 和String value的map容器。所以该类型非常适合存储值对象的信息。这里的结构像极了JavaBean对象,例如UserName、Age、Sex、Address等等。如果hash中包含的字段少,那么该类型占据的磁盘空间也就很少。每一个hash可以存储4294967295个键值对hash增、改:hset key field value 指定key 的值是 field valuehmset key field val...原创 2021-02-05 22:02:44 · 664 阅读 · 0 评论 -
redis数据库专题002---String类型的增删改查
上一篇博客中介绍了reids的作用,这一篇开干:首先redis数据库是key-value形式的,它所有的key都是字符串。不同的是,value有5中类型。这一篇我们讲redis的String类型字符串类型是redis中最为基础的常用的数据类型。值得注意的是,字符串在redis中是二进制安全的。这表示存入和获取的数据相同。在redis中,字符串类型的value最多可以容纳的数据长度为512M“二进制安全”这点也是redis非关系型数据库的优势,结合传统的数据库,画图展示:下面正式.原创 2021-02-04 21:59:03 · 259 阅读 · 0 评论 -
redis数据库专题001
公司之前一直在用redis,近期钻研了下redis,打算写一个系列。第一篇先写下redis的作用,我们为什么要用redis?我们常见的数据库整体上分为:关系型数据库和非关系型数据库。关系型数据库比较传统:例如Oracle、MySQL、SQLserver等非关系型数据库:我们按照大类分为几类: 1、键值对k-v存储的数据库, 例如:redis、voldemort、Tyrant ...原创 2021-02-03 23:31:38 · 81 阅读 · 0 评论