title: 自己手写一个LRU策略 date: 2021-06-18 12:00:30 tags: - [redis] - [lru] categories: - [redis] permalink: zxh prefix: redis 一.题目描述 146. LRU 缓存机制 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 . 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化LRU缓存 int…
前言 整数集合相信有的同学没有听说过,因为redis对外提供的只有封装的五大对象!而我们本系列主旨是学习redis内部结构.内部结构是redis五大结构重要支撑! 前面我们分别从redis内部结构分析了redis的List.Hash.Zset三种数据结构了.今天我们再来分析set数据结构内部是如何存储的 基本结构 在src/t_set.c中我们发现这样一段代码 由此我们可知在set中是由两种数据结构构成的: hashtable+intset .关于redis内部其他的结构我专门在[redis专栏…
前言 在之前我们已经学习了redis五大数据结构中的list结构.其内部是linkedList和zipList两种结构.这是我们已经学习的内容.之前我没有结合操作具体查看.事实上在两者中还存在一种结合体quickList 结构演变 在上面我们添加了一个key为zlist的数据.通过object encoding zlist查看底层就是通过quicklist来构建的.之前在ziplist章节汇总我们了解到在redis中hash和list基本数据结构都使用了ziplist存储数据的.在list中我们…
写在前面:这篇笔记有点长,如果你认真看完,收获会不少,如果你只是忘记了相关命令,请翻到末尾. redis的简单介绍: 一个提供多种数据类类型储存,整个系统都在内存中运行的, 定期通过异步的方式把数据刷到磁盘进行保存的一个内存数据库 因为实在内存中操作数据,所以效率非常高,但受制于物理内存的限制,一般用作处理少量数据的高性能操作: 下面开始玩redis,包括主从架构和3.0后的分片集群: 首先安装依赖: yum -y install cpp binutils glibc glibc-kernhea…
1.   Redis的安装 1.1. Redis的安装 Redis是c语言开发的. 安装redis需要c语言的编译环境.如果没有gcc需要在线安装.yum install gcc-c++ 安装步骤: 第一步:redis的源码包上传到linux系统. 第二步:解压缩redis. 第三步:编译.进入redis源码目录.make 第四步:安装.make install PREFIX=/usr/local/redis PREFIX参数指定redis的安装目录.一般软件安装到/usr目录下 1.2. 连接…
单机版 第一步:需要安装redis所需的C语言环境,若虚拟机联网,则执行 yum install gcc-c++ 第二步:redis的源码包上传到linux系统 第三步:解压缩redis   tar zxf redis的压缩文件 第四步:编译 ,进入redis源码目录 .make 第五步:安装,make install PREFIX=/路径 第六步:前端启动(./redis-server)这种启动会占用一个终端,不推荐 第七步:后台启动将redis源码包下的redis.conf 复制到 /bin…
主从复制 Master-Slave主从概念 同时运行多个redis服务端,其中一个作为主(master),其他的一个或多个作为从(slave),主从之间通过网络进行通讯,slave通过复制master的数据来保持与master的数据同步,实现数据冗余; 在Redis中,配置主从复制非常简单,Redis允许slave实例对master进行完整拷贝,在连接断开时,slave会自动重新连接至主实例,并尽可能与master保持同步; 三个主要机制: 当连接可用时,master将发送命令流到slave来使…
Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在去看redis的源码能看懂50-60%. redis目前最大的集群应该是新浪的应该. redis目前是vmvaer来支持的,很多的开源软件都需要某些组织来支持的.如果一个开源软件没有金钱来支持的话很难走的持久   二.Redis和Memcache对比…
在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共享的两大因素: 1. session必须有ha机制,集群中部分服务器发生故障时,保证session不丢失. 2. session的生命周期管理. 3. session的大小未知,整体的序列化和反序列化成本比较高. redis的解决方式 1. redis具有持久化功能,且sentiment具有ha功效…
第一步:准备 1.安装包 ruby-2.4.0.tar.gz rubygems-2.6.10.tgz zlib-1.2.11.tar.gz redis-3.3.2.gem 2. 架构: 名称 IP 端口 节点属性 redisA 192.168.6.128 6379 主节点 redisB 192.168.6.128 9379 从节点 redisC 192.168.6.129 6379 主节点 redisD 192.168.6.129 9379 从节点 redisE 192.168.6.130 63…