
Redis
K. Bob
多读书,多睡觉;少吃零食,多运动。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis事务与watch
Redis的事务 Redis中的事务(transaction)是一组命令的集合。Redis事务的相关命令:multi:开启事务,exec:执行事务,discard:回滚操作事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。Redis保证一个事务中的所有命令要么都执行,要么都不执行。如果在发送EXEC命令前客户端断线了,则Redis会清空事务队列,事务中的所有命令都不会执行。而一旦客户端发送了EXEC命令,所有的命令就都会被执行,即使此后客户端断线也没关系,因为Red原创 2020-07-28 21:47:08 · 403 阅读 · 0 评论 -
Redis缓存雪崩、击穿、穿透
缓存雪崩 缓存雪崩是指在设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到数据库,数据库瞬时压力过重雪崩。解决方案在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量,从而避免失效时大量的并发请求落到底层存储系统上不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀缓存穿透 缓存穿透指恶意用户模拟请求很多缓存中不存在的数据,由于缓存中都没有,导致这些请求短时间内直接落在了数据库上,导致数据库异常,甚至瞬间宕机。解决方案1、采用布隆过滤器,将所有原创 2020-06-07 23:13:17 · 327 阅读 · 0 评论 -
Redis的持久化
redis原理之数据持久化虽然redis这种no-sql一般都是作为cache来服务 但是如果完全没有数据可持久化的方法 那么显得有些单薄就像memcache 由于这种no-sql是工作在memory的 那么由于memory的实体是ram所以如果重启或者宕机 memory中的数据就全没了 数据的一致性的不到保障但是 redis不同 redis有相对的数据持久化的方案 由两种方式构成 aof & rdbaof就像关系数据库中的binlog一样 把每一次写操作以追加的形式记录在其中以文件的原创 2020-05-28 22:38:25 · 330 阅读 · 0 评论 -
Redis集群
Redis有三种集群模式,分别是:主从模式、Sentinel模式、Cluster模式主从模式 在主从复制模式中,数据库分为两类:主数据库(master)和从数据库(slave)。其中主从复制有如下特点:主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库从数据库一般都是只读的,并且接收主数据库同步过来的数据一个master可以拥有多个slave,但是一个slave只能对应一个masterslave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从原创 2020-05-28 17:04:22 · 306 阅读 · 0 评论 -
单线程Redis高性能原因
目录Redis简介Redis快速的原因那么为什么Redis是单线程的Redis简介 Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(String),散列(Hash),列表(List),集合(Set),有序集合(Sorted Set或者是ZSet)与范围查询,Bitmaps,Hyperloglogs 和地理空间(Geospatial)索引半径查询。其中常见的数据结构类型有:String、List、Set、Hash、ZSet这5种。原创 2020-05-26 09:46:05 · 457 阅读 · 0 评论 -
跳表
对于一个单链表,即使链表是有序的,想要在其中查找某个数据,也只能从头到尾遍历链表,效率就很低。跳表查询的分析?如果链表中总共有 n个结点,那么第一级索引就有 n^ 2 个结点,第二级索引就有 n^ 4 个结点,以此类推,那么第 k 级索引就有 n^ 2k 个结点。如果最高级索引有 2 个结点,那总的索引级数 k=log2n−1,如果算上原始链表的话,那也就是总共有 log2n级。在第 k级索...原创 2020-05-04 13:47:38 · 390 阅读 · 0 评论 -
MySQL和Redis的区别
MySQL和Redis的数据库类型 MySQL是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。Redis是NoSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限MySQL的运行机制 MySQL作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,如果反复...原创 2020-05-04 01:01:12 · 338 阅读 · 0 评论 -
Redis实现分布式锁
在 JUC 包中除了阻塞锁外还有一种叫 CAS 的无阻塞锁,CAS 操作本身是原子性的,多个线程操作同一个变量的 CAS 时候只有一个线程能进行 CAS 成功,失败的线程接下来那么使用乐观锁机制直接失败要么使用自旋方式使用 CPU 资源重复进行 CAS 尝试。那么在分布式锁的实现中我们也可以使用类似的方式,比如 Redis 提供了一个保证原子性的 setnx 函数,多个线程调用该函数操作同一...原创 2020-02-11 16:49:49 · 221 阅读 · 0 评论 -
Redis 内存淘汰策略
内存上限 Redis可以通过 maxmemory 参数来限制最大可用内存,主要为了避免Redis内存超过操作系统内存,从而导致服务器响应变慢甚至死机的情况。maxmemory 参数限制的是Redis的对象内存大小,也就是 used_memory 对应的内存大小。由于内存碎片的存在,所以Redis服务器实际占用的内存是要超过 maxmemory 的。 在设置Redis内存上限的时候要预留一部...原创 2020-02-11 13:55:51 · 229 阅读 · 0 评论 -
Redis数据一致性
Redis数据一致性Redis集群节点的数据一致性哈希槽主从复制Redis数据一致性缓存一致的必要性缓存一致性实现Redis集群节点的数据一致性哈希槽 Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个哈希槽。集群的每个节点负责一部分hash槽。这种结构很容易添加或者删除节点,...原创 2020-02-09 15:14:53 · 576 阅读 · 0 评论 -
Redis常见问题
Redis常见问题汇总(持续更新)1)输入make命令出现cd src && make allmake[1]: Entering directory `/root/redis-5.0.5/src‘ CC adlist.o/bin/sh: cc: command not foundmake[1]: *** [adlist.o] Error 127make[1]: ...原创 2019-05-20 21:35:50 · 1590 阅读 · 0 评论 -
Redis
下面是自己在学习Redis是的一些总结Redis概述Redis持久化Jedis对String操作的命令Redis概述 Redis是一个key-value存储的内存缓存操作,其数据库完全在内存中,使用磁盘仅用于持久性。Redis可以将数据复制到任意数量的从服务器。Redis的优势:1、Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。2、Redis支持丰富的数据类型...原创 2019-05-28 10:27:27 · 1632 阅读 · 0 评论