Redis
BLUcoding
这个作者很懒,什么都没留下…
展开
-
Redis11_缓存穿透和雪崩
Redis11_缓存穿透和雪崩缓存穿透用户查询某个数据时,会先在redis缓存中查询,如果缓存没有命中,会去持久层数据库MySQL中查询,如果此时依然没有命中,将返回null,不会写入缓存。当同时有大量的查询请求在缓存中没有命中,于是都去请求MySQL,给持久层数据库造成了巨大压力,这就是缓存穿透现象比如某个用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决方案1:布隆过滤器布隆过滤器是一种数据结构,对所有可能原创 2020-09-09 16:01:10 · 117197 阅读 · 0 评论 -
Redis10_订阅发布、主从复制、哨兵模式
Redis10_redis订阅发布使用场景:实时消息系统实时聊天订阅关注复杂的场景中一般选择使用MQ线程A(订阅端):subscribe 订阅指定频道,监听推送信息:127.0.0.1:6379> subscribe BLUReading messages... (press Ctrl-C to quit)1) "subscribe"2) "BLU"3) (integer) 1线程B(发送端):publish 频道发布:127.0.0.1:6379> pub原创 2020-09-09 09:32:15 · 194197 阅读 · 0 评论 -
Redis09_持久化之RDB和AOF操作
Redis09_持久化之RDB操作由于 Redis 是一个内存数据库,读写效率比传统数据库要快的多,但缺点是,一旦断电或者宕机,那么内存数据库中的数据将会全部丢失。因此Redis提供了将内存数据持久化到硬盘,以及用持久化文件来恢复数据库数据的功能。支持以下两种形式的持久化:RDB快照(snapshotting)AOF(append-only-file)RDB是把当前内存中的数据集快照写入磁盘,也就是 Snapshot 快照(数据库中所有键值对数据)。恢复时是将快照文件直接读到内存里。RD原创 2020-09-08 22:12:59 · 111862 阅读 · 0 评论 -
Redis08_SpringBoot与Redis整合
Redis08_SpringBoot与Redis整合RedisAutoConfiguration 源码分析: /** * @ConditionalOnMissingBean(name = "redisTemplate") * 这个注解表示如果name为“redisTemplate”的bean已存在,则该注解修饰的代码块不执行。 * 所以我们可以自定义一个RedisTemplate来替换该默认配置 * * 两个泛型都是Object类型,所以我们使用需要强制转换:<String, Obj原创 2020-08-31 22:59:52 · 106966 阅读 · 0 评论 -
Redis07_使用Jedis操作Redis
Redis06_使用Jedis操作Redis依赖:<dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version> </dependency> <dependency>原创 2020-08-31 20:47:36 · 104962 阅读 · 0 评论 -
Redis06_Redis事务和乐观锁的实现
Redis06_事务和乐观锁的实现Redis 事务Redis 事务的本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中会按顺序执行Redis 单条命令保证原子性,但是事务不保证原子性Redis 事务没有隔离级别的概念所有的命令在事务中并没有直接被执行,只有发起执行命令的时候才会执行multi 开启事务exec 提交执行事务127.0.0.1:6379> multiOK127.0.0.1:6379> set k1 v1QUEUED127.0.原创 2020-08-30 12:23:31 · 121321 阅读 · 0 评论 -
Redis05_三种特殊数据类型
三种特殊数据类型1. geospatial 地理位置2. 二级目录3. 三级目录1. geospatial 地理位置注:GEO的底层实现原理是Zset,可以使用Zet的命令操作GEO应用:朋友的定位、附近的人、计算打车距离geoadd 将指定的地理空间位置(经度、纬度、名称)添加到指定的key中127.0.0.1:6379> geoadd china:city 116.40 39.90 Beijing(integer) 1127.0.0.1:6379> geoadd china原创 2020-08-29 13:02:14 · 119809 阅读 · 0 评论 -
Redis04_五大基本数据类型
Redis04_五大基本数据类型String类型append 给指定key追加值,如果当前key不存在,就相当于set keystrlen 获取字符串的长度127.0.0.1:6379> append name hello(integer) 8127.0.0.1:6379> get name"BLUhello"127.0.0.1:6379> strlen name(integer) 8incr 将key中存储的数字值加1 i++decr 将key中存储的数字原创 2020-08-28 12:50:51 · 116714 阅读 · 0 评论 -
Redis03_基本命令和基本知识说明
Redis默认有16个数据库,编号为0–15默认使用的是第0个数据库select 切换数据库dbsize 查看数据库大小keys * 查看所有的keyflushdb 清空当前数据库flushall 清空所有数据库127.0.0.1:6379> select 3OK127.0.0.1:6379[3]> dbsize(integer) 0127.0.0.1:6379[3]> set name zhangsanOK127.0.0.1:6379[3]> d原创 2020-08-27 21:58:19 · 117742 阅读 · 0 评论 -
Redis02_redis-benchmark压力测试工具
Redis02_redis-benchmark压力测试工具测试100个并发连接,每个连接100000个请求redis-benchmark -h localhost -p 6379 -c 100 -n 100000分析示例:====== SET ====== 100000 requests completed in 1.22 seconds 100 parallel clients 3 bytes payload keep alive: 1 host configura原创 2020-08-27 21:29:17 · 107715 阅读 · 0 评论 -
Redis01_下载和安装
Redis (Remote Dictionary Server 远程字典服务)是一种可基于内存亦可持久化的日志型、Key-Value数据库官网:https://redis.io/Windows安装在GitHub上下载安装包并解压:https://github.com/MicrosoftArchive/redis/releases运行redis-server.exe即可启动,默认端口6379运行redis-cli.exe客户端即可连接服务器基本操作命令://ping测试连接,返回PONG原创 2020-08-27 21:09:22 · 113928 阅读 · 1 评论