redis分布式锁

redis的特点以及搭建

杀马特。学长 韩版系。学妹 提交于 2020-01-13 04:09:12
Redis介绍 为了更好的了解Redis,我们不妨从以下几点来分析Redis: Redis是什么,有什么特点 我们使用Redis是为了解决什么样的问题 Redis有哪些特别棒的技术,这些技术又为了解决实际工作中的哪些问题 了解Redis,我们怎么去使用Redis,需要get哪些知识技能点 运用Redis来搭建高可用的环境 Redis是什么,有什么特点 官方的解释:Redis是使用C语言编写,支持网络、内存,亦可持久化的日志型、key-value数据库; 首先明确一点,Redis是一个数据库,不同于我们熟悉的关系型数据:Oracle和Mysql等; Redis是基于内存的key-value数据库。Redis跟Memcached比较像,不同的是Redis的value支持多种数据结构类型。 Redis有如下一些很棒的优点: Redis支持多种数据类型:String, hash, list, set以及zset(sorted set),这些数据类型能让我们很好的定义不同数据类型来满足我们的业务的需要。 Redis数据库支持事务,所有的操作都是原子性的 内存数据库,速度非常快,使用目前流行的SSD硬盘,性能得到更优 支持将内存中的数据库持久化硬盘上,并且支持在启动的时候恢复数据 Redis支持主从架构(复制) Redis可以配置高可用缓存架构(主备切换) Redis可以搭建分布式集群架构

0109 redis数据库的配置与使用

痞子三分冷 提交于 2020-01-12 21:54:15
目录 昨日回顾 Redis 1. Redis简介 1.1 为什么要用 redis /为什么要用缓存 1.2 为什么要用 redis 而不用 map/guava 做缓存? 1.3 redis 和 memcached 的区别 2.Redis内存数据库 2.1 redis介绍 2.2 Redis操作 2.3 Redis数据类型 2.4 python使用redis 3.接口缓存 模式 轮播图接口缓存 4.celery异步服务框架 昨日回顾 1、接口编辑 1)设计数据库 2)分析业务逻辑 3)配置路由层 4)完成视图(简单逻辑,直接在视图中完成,复杂逻辑,交给序列化组件完成) 5)序列化组件(序列化与反序列化字段,是否要(重|自)定义字段,设置局部全局钩子,考虑是否重写create和update方法) 2、django缓存 from django.core.cache import cache (memcache|redis) cache.set(k, v, e) cache.get(k) 3、vue-cookies $cookies = vue-cookies $cookies.set(k, v, e) $cookies.get(k) $cookies.remove(k) -- 前台数据库:cookie、sessionStorage、localStorage 4、前后台交互 $axios(

学习笔记 -redis

巧了我就是萌 提交于 2020-01-12 13:59:32
启动服务 在家目录下: redis-server /opt/myRedis/redis.conf 查看是否启动: ps -ef | grep redis 客户端启动 使用redis-cli 如果有多个Redis同时启动,则需指定端口号访问 redis-cli -p 端口号 测试验证,通过 ping 命令 查看是否 返回 PONG 常用命令 登录 redis-cli -p 5566 -a password 检查key是否存在 EXISTS key 搜索某关键字 KSYS *4 返回一个Key所影响的vsl的类型 TYPE key String 单条操作 增:set key value 查:get key 删:del key 多条操作 增:mset key value [key1 value1] 查:mget key [key1] 扩展操作 1.数字增加减少命令 incr key //自增 1 incrby key num //给key的值增加num(int 类型),num 正数则为加,num 为负数 则为减 incrbyfloat key num //给key的值增加num(float 类型) decr key //自减 1 decrby key num //给key的值减num 按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。 应用:

redis整合springboot的helloworld

蹲街弑〆低调 提交于 2020-01-11 10:08:51
引入依赖 compile 'org.springframework.boot:spring-boot-starter-data-redis' 使用redis有两种方法 1.Jedis Jedis jedis = new Jedis("localhost"); 2.RedisTemplate @Autowired private RedisTemplate redisTemplate; 如果使用RedisTemplate的话,要在application.properties中配置信息,这里我使用Jedis比较简单 redis的自动配置 在application.properties文件下 #redis的springboot的自动配置 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 #

redis笔记

試著忘記壹切 提交于 2020-01-11 01:10:49
redis笔记 redis 是什么? 能干嘛? 去哪下? 怎么玩? redis的安装 redis设置外网访问 redis数据类型及api操作(http://redisdoc.com/) key 1.string 2.list 3.set 4.hash 5.zset redis的持久化机制 1.RDB 是什么? 1.这个持久化文件在哪里 2.他什么时候fork子进程,或者什么时候触发rdb持久化机制 2.aof(--fix) ls -l --block-size=M 是什么? 1.这个持久化文件在哪里 2.触发机制(根据配置文件配置项) 3.aof重写机制 4.redis4.0后混合持久化机制 开启混合持久化 小总结: 1.redis提供了rdb持久化方案,为什么还要aof? 2.如果aof和rdb同时存在,听谁的? 3.rdb和aof优势劣势 性能建议(这里只针对单机版redis持久化做性能建议): redis集群专题 Redis主从复制 1.是什么 2.能干嘛 3.怎么玩 4.全量复制消耗 5.缺点 redis哨兵模式 1.是什么,能干嘛? 2.哨兵主要功能(做了哪些事) 3.架构 4.怎么玩(实战)? 1.部署主从节点 2.部署哨兵节点 哨兵节点的启动有两种方式,二者作用是完全相同的: 5.故障转移演示(哨兵的监控和自动故障转移功能) 6.客户端(jedis)访问哨兵系统

(77)一文了解Redis

这一生的挚爱 提交于 2020-01-10 03:24:36
为什么我们做分布式使用Redis? 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里对 Redis 常见问题做一个总结,解决大家的知识盲点。 1、 为什么使用 Redis 在项目中使用 Redis,主要考虑两个角度:性能和并发。 如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis。 性能: 如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应。 特别是在秒杀系统,在同一时间,几乎所有人都在点,都在下单。。。执行的是同一操作———向数据库查数据。 根据交互效果的不同,响应时间没有固定标准。在理想状态下,我们的页面跳转需要在瞬间解决,对于页内操作则需要在刹那间解决。 并发: 如下图所示,在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用 Redis 做一个缓冲操作,让请求先访问到 Redis,而不是直接访问数据库。 使用 Redis 的常见问题 缓存和数据库双写一致性问题 缓存雪崩问题 缓存击穿问题 缓存的并发竞争问题 2、 单线程的 Redis 为什么这么快 这个问题是对 Redis

redis面试

故事扮演 提交于 2020-01-09 15:24:44
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图) 原创程序员追风 发布于2019-11-25 18:09:31 阅读数 51710 收藏 展开 Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性能问题和解决方案: 10、redis 过期键的删除策略? 11、Redis 的回收策略(淘汰策略)? 12、为什么 edis 需要把所有数据放到内存中? 13、Redis 的同步机制了解么? 14、Pipeline 有什么好处,为什么要用 pipeline? 15、是否使用过 Redis 集群,集群的原理是什么? 16、Redis 集群方案什么情况下会导致整个集群不可用? 17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个? 18、Jedis 与 Redisson 对比有什么优缺点? 19、Redis 如何设置密码及验证密码? 20、说说 Redis 哈希槽的概念? 21、Redis 集群的主从复制模型是怎样的? 22、Redis

关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁

百般思念 提交于 2020-01-09 05:48:43
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁 首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在jdk java.util 并发包中已经为我们提供了这些方法去加锁, 比如synchronized 关键字 或者Lock 锁,都可以处理。 但是我们现在的应用程序如果只部署一台服务器,那并发量是很差的,如果同时有上万的请求那么很有可能造成服务器压力过大,而瘫痪。 想想双十一 和 三十晚上十点分支付宝红包等业务场景,自然需要用到多台服务器去同时处理这些业务,那么这些服务可能会有上百台同时处理, 但是请我们大家想一想,如果有100台服务器 要处理分红包的业务,现在假设有1亿的红包,1千万个人分,金额随机,那么这个业务场景下是不是必须确保这1千万个人最后分的红包金额总和等于1亿。 如果处理不好~~每人分到100万,那马云爸爸估计大年初一,就得宣布破产了~~ 1,常规锁会造成什么情况? 首先说一下我们为什么要搞集群,简单理解就是,需求量(请求并发量)变大了,一个工人处理能力有限,那就多招一些工人来一起处理。 假设1千万个请求平均分配到100台服务器上,每个服务器 接收10w的请求(这10w个请求并不是在同一秒中来的

关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁

纵然是瞬间 提交于 2020-01-09 02:12:50
首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在jdk java.util 并发包中已经为我们提供了这些方法去加锁, 比如synchronized 关键字 或者Lock 锁,都可以处理。 但是我们现在的应用程序如果只部署一台服务器,那并发量是很差的,如果同时有上万的请求那么很有可能造成服务器压力过大,而瘫痪。 想想双十一 和 三十晚上十点分支付宝红包等业务场景,自然需要用到多台服务器去同时处理这些业务,那么这些服务可能会有上百台同时处理, 但是请我们大家想一想,如果有100台服务器 要处理分红包的业务,现在假设有1亿的红包,1千万个人分,金额随机,那么这个业务场景下是不是必须确保这1千万个人最后分的红包金额总和等于1亿。 如果处理不好~~每人分到100万,那马云爸爸估计大年初一,就得宣布破产了~~ 1,常规锁会造成什么情况? 首先说一下我们为什么要搞集群,简单理解就是,需求量(请求并发量)变大了,一个工人处理能力有限,那就多招一些工人来一起处理。 假设1千万个请求平均分配到100台服务器上,每个服务器 接收10w的请求(这10w个请求并不是在同一秒中来的,可能是在1,2个小时内,可以联想下我们三十晚上开红包,等到10.20开始

redis全面解析

拥有回忆 提交于 2020-01-08 11:10:49
什么是Redis? Redis 是开源免费的,遵守BSD协议,是一个高性能的key-value非关系型数据库。 redis单线程问题 所谓的单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。 redis采用多路复用机制:即多个网络socket复用一个io线程,实际是单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流. Redis特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供String,list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 丰富的特性 – Redis还支持 publish/subscribe, 通知, 设置key有效期等等特性。 redis作用: 可以减轻数据库压力,查询内存比查询数据库效率高。 Redis应用: token生成、session共享、分布式锁、自增id、验证码等。 比较重要的3个可执行文件