![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 82
redis底层数据结构和集群的数据同步机制原理
痴迷的小小工匠
在繁碌的生活中,做一个小小工匠,痴迷其中
展开
-
redis(1)(2)——数据类型和应用场景、命令行操作
一、连接启动服务./redis-server redis.conf连接./redis-cli -h 127.0.0.1 -p 6379或者./redis-cli二、Redis数据类型和应用场景Redis是一个Key-Value的存储系统,使用ANSI C语言编写。注意:Redis中命令是忽略大小写,(set SET),key是不忽略大小写的 (NAME name)2.1 Key的设计key的类型是字符串。1. 用:分割2. 把表名转换为key前缀,.原创 2021-06-25 07:41:50 · 179 阅读 · 0 评论 -
redis(1)(3)——底层数据结构
Redis作为Key-Value存储系统RedisDB结构Redis中存在“数据库”的概念,该结构由redis.h中的redisDb定义。 当redis 服务器初始化时,会预先分配 16 个数据库 所有数据库保存到结构 redisServer 的一个成员 redisServer.db 数组中 redisClient中存在一个名叫db的指针指向当前使用的数据库...原创 2021-06-24 07:25:39 · 106 阅读 · 0 评论 -
redis(4)(1)——(总结)缓存、分布式锁
缓存问题缓存穿透缓存穿透是指在高并发下查询key不存在的数据,会穿过缓存查询数据库。导致数据库压力过大而宕机 解决方案: 对查询结果为空的情况也进行缓存,缓存时间(ttl)设置短一点,或者该key对应的数据insert了 之后清理缓存。 问题:缓存太多空值占用了更多的空间 使用布隆过滤器。在缓存之前在加一层布隆过滤器,在查询的时候先去布隆过滤器查询 key 是否 存在,如果不存在就直接返回,存在再查缓存和DB。...原创 2021-06-20 22:25:15 · 122 阅读 · 0 评论 -
redis(3)(2)——Cluster分区与集群
分区分区是将数据分布在多个Redis实例(Redis主机)上,以至于每个实例只包含一部分数据分区的意义原创 2021-06-20 20:52:54 · 344 阅读 · 0 评论 -
redis(1)(1)——缓存原理&设计
缓存基本思想什么是缓存?缓存原指CPU上的一种高速存储器,它先于内存与CPU交换数据,速度很快。现在泛指存储在计算机上的原始数据的复制集,便于快速访问。 在互联网技术中,缓存是系统快速响应的关键技术之一 ,以空间换时间的一种技术(艺术) 缓存的使用场景 DB缓存,减轻DB服务器压力一般情况下数据存在数据库中,应用程序直接操作数据库。 当访问量上万,数据库压力增大,可以采取的方案有: 读写分离,分库分表 当访问量达到10万、百万,需要引入缓存。 ...原创 2021-06-20 08:35:06 · 103 阅读 · 0 评论 -
redis(3)(1)——哨兵模式
哨兵(sentinel)是Redis的高可用性(High Availability)的解决方案: 由一个或多个sentinel实例组成sentinel集群可以监视一个或多个主服务器和多个从服务器。 当主服务器进入下线状态时,sentinel可以将该主服务器下的某一从服务器升级为主服务器继续提供服 务,从而保证redis的高可用性。...原创 2021-06-20 08:26:16 · 111 阅读 · 0 评论 -
redis(2)——主从复制
主从复制Redis支持主从复制功能,可以通过执行slaveof(Redis5以后改成replicaof)或者在配置文件中设置 slaveof(Redis5以后改成replicaof)来开启复制功能。一、特点主对外从对内,主可写从不可写 主挂了,从不可为主二、作用2.1 读写分离一主多从,主从同步 主负责写,从负责读 提升Redis的性能和吞吐量 需要注意点:主从的数据一致性问题2.2 数据容灾从机是主机的备份 需要注意点...原创 2021-06-17 07:56:29 · 200 阅读 · 0 评论 -
redis(4)(2)——(总结)分片原理、通信机制,选举原理
1,哨兵集群,在主节点宕机后,重新选举主节点期间,服务不可用只能提供一个master单节点,不要弄太大内存存储,不要超过10G2,redis集群架构:节点时分片存储:hash分片算法,不超过1000节点3,分片原理:jedisCluster.set(源码里,对key,进行了getCRC16(key) & 16383项目启动时,本地会缓存一份集群元数据,(透视redis底层通信...)当本地缓存和服务器不一样时,也就是key所在位置不归自己管理了,服务端会发送重定向跳转请求,同时更原创 2021-04-05 20:30:59 · 106 阅读 · 2 评论