redis
爱学习的小肥猪
这个作者很懒,什么都没留下…
展开
-
在Java中使用redisTemplate操作缓存
在Java中使用redisTemplate操作缓存摘要: 背景 在最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概在几千万条。但同时对查询速度的要求也比较高。 这个数据库之前在没有使用Presto的情况下,使用的是Hive,使用Hive进行一个简单的查询,速度可能在几分钟。背景 在最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概在几...原创 2020-03-24 11:07:16 · 532 阅读 · 0 评论 -
redis缓存更新策略
Redis的缓存设计原则只应将热数据放到缓存中所有缓存信息都应设置过期时间缓存过期时间应当分散以避免集中过期缓存key应具备可读性应避免不同业务出现同名缓存key可对key进行适当的缩写以节省内存空间选择合适的数据结构确保写入缓存中的数据是完整且正确的避免使用耗时较长的操作命令,Redis默认配置中操作耗时超过10ms即视为慢查询一个key对应的数据不应过大...原创 2020-03-04 18:47:34 · 383 阅读 · 0 评论 -
reabitMq
1.1、什么是RabbitMQ?RabbitMQ是一个开元的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于 AMQP协议的。1.2、RabbitMQ有哪些特点?目前大多数互联网都在使用RabbitMQRabbitMQ底层采用Erlang语言进行编写开源、性能优秀,稳定与SpringAMQP完...原创 2020-03-02 16:23:26 · 378 阅读 · 0 评论 -
使用Redis单实例实现分布式锁
为什么使用redis分布式锁在同一个jvm进程中时,可以使用JUC提供的一些锁来解决多个线程竞争同一个共享资源时候的线程安全问题,但是当多个不同机器上的不同jvm进程共同竞争同一个共享资源时候,juc包的锁就无能无力了,这时候就需要分布式锁了。常见的有使用zk的最小版本,redis的set函数,数据库锁来实现。使用分布式锁package com.jiaduo.DistributedLock...转载 2020-03-02 16:17:05 · 114 阅读 · 0 评论 -
redis的三种集群方式
redis的三种集群方式redis有三种集群方式:主从复制,哨兵模式和集群。1.主从复制主从复制原理:从服务器连接主服务器,发送SYNC命令; 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令; 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令; 从服务器收到快照文件后丢弃...原创 2020-02-20 16:32:39 · 143 阅读 · 0 评论 -
Redis、Memcache和MongoDB的区别
常见的三种非关系型数据库的对比:>>MemcachedMemcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。支持直接配置为session handle。Memcached的局限性:只支持简单的key/value数...原创 2020-02-20 16:27:03 · 109 阅读 · 0 评论 -
redis使用
一 redis简介 redis是一款高性能的键值对(key-value)非关系型数据库。key是字符串类型,value包含五种类型:string hash list set sortedset二 redis安装 redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境 1 安装gcc-c++ yum install ...原创 2020-02-13 11:08:51 · 85 阅读 · 0 评论 -
Redis的操作命令
命令操作 1. redis的数据结构: * redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构 * value的数据结构: 1) 字...原创 2020-01-12 14:31:09 · 90 阅读 · 0 评论 -
redis实现session共享原理和原因
要用session+ redis 共享session的原因: 先进的企业级或者大型的网站平台,都是分布式结构,分布式的好处是通过nginx分发请求,让多个服务器各自处理请求,来减少单一服务器的压力,并且提高执行效率。 在这个分布式结构下,如果不用共享session的话,就会出现问题。当一个客户端发送一个请求(无session),通过nginx将第一次请求分发...原创 2020-01-10 10:40:42 · 1220 阅读 · 0 评论 -
Redis实现高并发分布式锁
分布式锁场景 在分布式环境下多个操作需要以原子的方式执行 首先启一个springboot项目,再引入redis依赖包: <!--https://mvnrepository.com/artifa ... -starter-data-redis--> <dependency> <groupId...原创 2020-01-07 15:51:55 · 148 阅读 · 0 评论 -
Redis分布式锁的实现
一般来说,在对数据进行“加锁”时,程序首先需要通过获取(acquire)锁来得到对数据进行排他性访问的能力,然后才能对数据执行一系列操作,最后还要释放(release)给其他程序。对于能够被多个线程访问的共享内存数据结构(shared-memory data structure)来说,这种“先获取锁,然后执行操作,最后释放锁”的动作非常常见。Redis使用WATCH命令来代替对数据进行加锁,因为W...原创 2020-01-06 09:32:01 · 116 阅读 · 0 评论 -
redis事务
Redis最简单的事务实现方式是使用MULTI,DISCARD,EXEC命令将事务操作包围起来,MULTI 和 EXEC 中的操作将会一次性发送给服务器,这种方式称为流水线,减少客户端与服务器之间的网络通信次数,提升性能redis事务三阶段:开启:以MULTI开始一个事务入队:将多个命令入队到事务队列中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面执行...原创 2019-12-17 11:27:52 · 75 阅读 · 0 评论 -
redis使用案例
1.计数器 string单线程,避免并发问题,保证不会出错,毫秒级性能命令:INCRBY incrby2.队列 list 简单消息队列、用户第几个访问、新闻列表排序由于redis把数据添加到队列是返回添加元素在队列的第几位,所以可以做判断用户是第几个访问这种业务新闻列表页面最新的新闻列表,redis的 LPUSH命令构建List3.在线状态、签到(大数据处理)几亿用户系统的签到,去重...原创 2019-12-17 11:05:36 · 117 阅读 · 0 评论 -
Redis是如何淘汰数据?
摘要:大家在用redis做缓存数据的时候有没有估算过整个缓存使用了多少空间呢?如果缓存数据的大小超过了整个redis的内存大小,又会有什么情况发生呢? 在redis中,我们是可以去设置最大使用内存大小server.maxmemory的,当redis内存数据集大小上升到一定程度的时候,就会施行数据淘汰机制。大家在用redis做缓存数据的时候有没有估算过整个缓存使用了多少空间呢?如果缓存数据的大...原创 2019-11-26 15:12:25 · 119 阅读 · 0 评论 -
Redis源码剖析之主从复制
1.复制 2.数据库状态一致 主从复制,服务器双方数据库将保存相同的数据,这种现象称为“数据库状态一致” 3.执行方式 >>>slaveof 127.0.0.1 6379 4.旧版复制功能的实现(2.8以前的版本) 复制功能都分为两个基本步骤:同步和命令...原创 2019-11-11 11:30:49 · 75 阅读 · 0 评论 -
Redis字符串类型内部编码剖析
概述我们平时用 Redis都是处于用户层面,我们可能会不加思索地操作一个 key-value 对来方便地存取数据,感觉方便之至。但你知道这些数据在背后是如何存储以及编码的吗? 了解清楚了这个问题,将对我们更加高效地使用 Redis具有指导意义。本文开始我们将结合 Redis源码来逐个探讨Redis五大数据类型的内部编码机制。实验环境:Redis 4.0.10Redis数据类型内部编码概况...原创 2019-11-07 15:04:39 · 84 阅读 · 0 评论