随笔分类 -  redis入门笔记

摘要:首先了解什么是并发竞争key 多个系统同时对同一个key进行操作,最终key的执行顺序跟我们的期望不同,也就导致了结果不同。 怎么解决? 分布式锁 zookeeper 和 Redis 都可以实现分布式锁(如果不存在 Redis 的并发竞争 Key 问题,不要使用分布式锁,这样会影响性能) 基于zoo 阅读全文
posted @ 2020-07-22 14:12 开心ever 阅读(477) 评论(0) 推荐(0)
摘要:缓存雪崩 什么是缓存雪崩? 缓存在同一时间大面积的失效,后面的请求都直接落到了数据库上,造成数据库短时间内承受大量请求。 这就好比雪崩一样,数据库的压力可想而知,可能直接就被这么多请求弄宕机了。 举个例子:系统的缓存模块出了问题比如宕机导致不可用。造成系统的所有访问,都要走数据库。 还有一种缓存雪崩 阅读全文
posted @ 2020-07-22 11:15 开心ever 阅读(225) 评论(0) 推荐(0)
摘要:Redis 配置文件 Redis.conf 中有相关注释,我这里就不贴了,大家可以自行查阅或者通过这个网址查看: http://download.Redis.io/Redis-stable/Redis.conf或者查看我的博客Redis 配置 Redis 提供 6 种数据淘汰策略: volatile 阅读全文
posted @ 2020-07-22 10:42 开心ever 阅读(671) 评论(0) 推荐(0)
摘要:一般情况下,我们设置保存的缓存数据的时候都会设置一个过期时间。 Redis 中有个设置时间过期的功能,即对存储在 Redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理 阅读全文
posted @ 2020-07-22 10:15 开心ever 阅读(783) 评论(0) 推荐(1)
摘要:redis内部使用的是文件事件处理器file event handler,这个文件事件处理器是单线程的,多以redis是单线程的。它采用io多路复用的机制来监听多个socket,根据soket上的时间来选择对应的事件处理器来进行处理。 io多路复用 多个socket 文件时间分派器 时间处理器(连接 阅读全文
posted @ 2020-07-22 10:10 开心ever 阅读(175) 评论(0) 推荐(0)
摘要:首先讲讲缓存数据的处理流程是怎样的? 为什么要用 Redis/为什么要用缓存? 主要是为了提升用户体验以及应对更多的用户。 缓存的有点: 高性能 : 假如用户第一次访问数据库中的某些数据的话,这个过程是比较慢,毕竟是从硬盘中读取的。但是,如果说,用户访问的数据属于高频数据并且不会经常改变的话,那么我 阅读全文
posted @ 2020-07-20 16:45 开心ever 阅读(951) 评论(0) 推荐(1)
摘要:现在公司一般都是用 Redis 来实现缓存,而且 Redis 自身也越来越强大了!但是我们还是来简单了解他们的区别与共同点 共同点 : 1.都是内存缓存 2.都有过期策略 3.两者的性能都非常高 区别 : reids Memcached 数据类型 支持的数据类型更丰富(支持更复杂的应用场景)比如:  阅读全文
posted @ 2020-07-20 16:39 开心ever 阅读(163) 评论(0) 推荐(0)
摘要:我们可以把分布式缓存(Distributed Cache) 看作是一种内存数据库的服务,它的最终作用就是提供缓存数据的服务。 如下图所示,就是一个简单的使用分布式缓存的架构图。我们使用 Nginx 来做负载均衡,部署两个相同的服务到服务器,两个服务使用同一个数据库和缓存。 本地缓存优点: 本地的缓存 阅读全文
posted @ 2020-07-20 16:22 开心ever 阅读(1097) 评论(0) 推荐(0)
摘要:本地缓存,这个实际在很多项目中用的蛮多,特别是单体架构的时候。数据量不大,并且没有分布式要求的话,使用本地缓存还是可以的。 常见的单体架构图如下,我们使用 Nginx 来做负载均衡,部署两个相同的服务到服务器,两个服务使用同一个数据库,并且使用的是本地缓存。 连个项目各自缓存,不共享 本地缓存的方案 阅读全文
posted @ 2020-07-20 16:12 开心ever 阅读(583) 评论(0) 推荐(0)
摘要:获取Jedis实例需要从JedisPool中获取 用完Jedis实例需要返还给JedisPool 如果Jedis在使用过程中出错,则也需要还给JedisPool 案例 import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis 阅读全文
posted @ 2020-07-14 17:59 开心ever 阅读(168) 评论(0) 推荐(0)
摘要:先决条件 jdk idea/eclipse Jedis所需要的jar包 Commons-pool-1.6.jar Jedis-2.1.0.jar Jedis常用操作 测试连通性 package cn.lonsun.staticcenter.controller; import redis.clien 阅读全文
posted @ 2020-07-14 17:57 开心ever 阅读(207) 评论(0) 推荐(0)
摘要:是什么 复制 在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这 阅读全文
posted @ 2020-07-14 17:14 开心ever 阅读(465) 评论(0) 推荐(0)
摘要:是什么 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 订阅/发布消息图 命令 案列 先订阅后发布后才能收到消息, 1 可以一次性订阅多个,SUBSCRIBE c1 c2 c3 2 消息发布,PUBLISH c2 hello-redis 3 订阅多个,通配符*, PS 阅读全文
posted @ 2020-07-14 16:15 开心ever 阅读(126) 评论(0) 推荐(0)
摘要:事务 MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原 阅读全文
posted @ 2020-07-14 16:07 开心ever 阅读(182) 评论(0) 推荐(0)
摘要:AOF(Append Only File) AOF 优点 使用AOF 会让你的Redis更加耐久: 你可以使用不同的fsync策略:无fsync,每秒fsync,每次写的时候fsync.使用默认的每秒fsync策略,Redis的性能依然很好(fsync是由后台线程进行处理的,主线程会尽力处理客户端请 阅读全文
posted @ 2020-07-13 18:00 开心ever 阅读(118) 评论(0) 推荐(0)
摘要:Redis 提供了不同级别的持久化方式: RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储. AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写, 阅读全文
posted @ 2020-07-13 17:30 开心ever 阅读(140) 评论(0) 推荐(0)
摘要:在set基础上,加一个score值。之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2 常用 案例:略 阅读全文
posted @ 2020-07-13 16:38 开心ever 阅读(343) 评论(0) 推荐(0)
摘要:KV模式不变,但V是一个键值对 常用 案例:lve 阅读全文
posted @ 2020-07-13 16:36 开心ever 阅读(458) 评论(0) 推荐(0)
摘要:单值多value 常用 案例: sadd/smembers/sismember 阅读全文
posted @ 2020-07-13 16:35 开心ever 阅读(140) 评论(0) 推荐(0)
摘要:单值多value 常用 案例 lpush/rpush/lrange lpop/rpop lindex,按照索引下标获得元素(从上到下) 返回列表里的元素的索引 index 存储在 key 里面。 下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。 负数索引用于指定从 阅读全文
posted @ 2020-07-13 16:32 开心ever 阅读(275) 评论(0) 推荐(0)