redis
诸般世界
这个作者很懒,什么都没留下…
展开
-
002 redis安装以及可执行文件介绍
1.下载 wgethttp://download.redis.io/releases/redis-xxxx.tar.gz到soft文件夹下2.tar -xzvf redis-XXX.tar.gz解压文件3.进入解压文件,进行编译make MALLOC=libc编译完成后src目录下出现如上文件;(如果现在运行安装,那么会报错,因为当前用户没有权限)切换到apple...原创 2019-07-01 16:59:43 · 384 阅读 · 0 评论 -
012 redis-集群安装及动态扩容
Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构达到负载均衡的目的。顺序分区:•数据分布理论: 分布式数据库首要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上,每个节点负责整个数据的一个子集。常见...原创 2019-07-03 12:51:02 · 197 阅读 · 0 评论 -
022 redis场景应用-抽奖
场景分析:奖品、数量、概率;1.应用redis做一个奖池,即存储好码(实际应该过程中应该落在数据库中);2.用户进入抽取号码;模拟实现:1.依赖配置:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin...原创 2019-07-08 17:09:38 · 423 阅读 · 0 评论 -
013 redis事务特性和持久化机制
事务:简单理解为把一些列操作当做一个原子性操作,要么成功要么失败; 事务存在四种特性ACID;事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久性(durability)的缩写。事务的原子性:表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。事务的一致性:...原创 2019-07-03 14:57:44 · 178 阅读 · 0 评论 -
014 redis java客户端操作
1.新建maven项目redis-client;2.导入java maven jedis依赖包;https://mvnrepository.com/找到jedis版本,然后导入;3.更换JDK:简单的代码操作:/*** redis java api* @author Administrator**/public class RedisDemo {...原创 2019-07-03 16:11:59 · 95 阅读 · 0 评论 -
015 redis整合SpringBoot
1.创建springboot-redis项目:创建springboot项目,创建是选择spring-boot-starter-data-redis依赖;2.在pom.xml中加入依赖:<modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframe...原创 2019-07-04 11:14:32 · 257 阅读 · 0 评论 -
016 redis整合SpringBoot实现消息队列
模拟实际应用生产端和消费端消息队列:一.创建springbootredispublisher生产者(发送消息端)1.创建springboot项目加入maven管理2.在pom.xml中添加依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifac...原创 2019-07-04 20:14:05 · 267 阅读 · 0 评论 -
017 redis整合SpringBoot实现Session共享
模拟多节点服务器环境,通过一套代码不同端口实现,最终判断获取的sessionID一致即实现共享;【java -jar --server -port=8000,通过启动命令配置各种信息的优先级最高】1.创建springboot-redis-session项目,配置pom.xml依赖:<dependency> <groupId>org.springfram...原创 2019-07-05 10:40:46 · 100 阅读 · 0 评论 -
001 redis基础-redis特性
Redis特性:•速度快:官方给出10万QPS,即每秒可以进行10万次读写操作,其为理想化;实际应用工作中,万级QPS是没有问题,具体要看使用方法与应用的数据结构;1.数据不落地,直接存储在内存中;2.使用C语言开发,只有5到6万行代码;3.redis的线程模式是单线程(数据存储内存中,使用单线程效率高,多线程会操作内存瓶颈,线程间切换会浪费过多资源);•持久化:rides数据...原创 2019-06-30 12:41:16 · 109 阅读 · 0 评论 -
018 redis场景应用-数据缓存
1.创建springboot-redis-cache项目,配置pom.xml添加依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId><...原创 2019-07-05 19:14:20 · 145 阅读 · 0 评论 -
021 redis场景应用-抢红包
场景描述:1.发红包:发多少钱,多少人;(红包属性)2.抢红包:不可重复抢(set数据结构应用,其特性是集合中不可以出现重复的元素),可获取份额(金额),有两种解决方式,第一,在抢的时候对红包进行随机金额分割;第二,事先对红包按一定规则进行划分固定份额,然后在抢的动作开始时,随机分配一个份额给用户(redis中List数据结构,把整个红包分成多少份,金额按照一定的算法实现,发在一个队列中,...原创 2019-07-08 14:07:36 · 236 阅读 · 0 评论 -
011 redis部署方式-哨兵模式
•概述: Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自懂切换。它的主要功...原创 2019-07-02 15:49:37 · 224 阅读 · 0 评论 -
003 redis配置文件详解
## Redis 3.2x配置文件详解# 默认redis不是以后台进程的方式启动,如果需要在后台运行,需要将这个值设置成yes # 以后台方式启动的时候,redis会写入默认的进程文件/var/run/redis.pid daemonize yes 【ps -ef|grep redis 查看进程】【netstat -antp|grep 6379 监控端口】----------...原创 2019-07-01 18:46:58 · 161 阅读 · 0 评论 -
004 redis数据结构(一)-String和Hash
redis数据结构和内部编码:127.0.0.1:10179> set test1 2OK127.0.0.1:10179> object encoding test1"int"127.0.0.1:10179> type test1string127.0.0.1:10179>object enconding 查看内部编码type 查看外部数据结构...原创 2019-07-01 19:25:55 · 134 阅读 · 0 评论 -
005 redis数据结构(二)-List
•List类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。更详细的说,List类型是一个双向链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,list的设计非常简单精巧,即可以做为栈,又可以作为队列。满足绝大多数需求。•lpush方法: 从头部加入元素(栈) 先进后出•lpush key1 value•lrange list1 0 -1表示从头取到...原创 2019-07-01 19:41:19 · 73 阅读 · 0 评论 -
006 redis数据结构(三)-set
•set集合是string类型的无序集合 ,set是通过intset或者hashtable实现的,对集合我们可以取交集、并集、差集•内部编码有 intset和hashtable•SADDkey member [member ...] 添加一个或多个指定的member元素到集合的 key中, set集合不允许重复元素 smembers查看set集合的元素•SREMkey member...原创 2019-07-01 20:02:54 · 82 阅读 · 0 评论 -
007 redis数据结构(四)-Zset
•有序集合有两种内部编码方式:ziplist和skiplist•ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 将所有指定成员添加到键为key有序集合(sorted set)里面。 添加时可以指定多个分数/成员(score/member)对。 如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore...原创 2019-07-02 07:47:31 · 392 阅读 · 0 评论 -
008 redis高级命令与特性
•keys * 返回满足条件的所有key,可以模糊匹配 //生产环境禁止使用,扫描全库的key,redis本来就是单线程,那么会一直占用不得释放;-----------------------------------------------------------------------------------------------------------------------...原创 2019-07-02 08:00:43 · 69 阅读 · 0 评论 -
009 redis 安全
•定期打补丁: 定期关注版本更新及版本补丁;•禁止一些高危命令: 生产环境要通过配置禁止掉高危命令,不允许随意使用以免误操作; •以低权限运行 Redis 服务 redis要以低权限系统用户运行,不可以使用root用户建立和运行;•禁止外网访问 Redis 作为数据库,一定要禁止...原创 2019-07-02 08:31:44 · 87 阅读 · 0 评论 -
010 redis部署方式-主从模式
单点模式的缺陷:1.机器故障2.容量瓶颈3.QPS瓶颈主从模式:【实际生产环境中主从不可以部署在同一个机器上】1.无论主节点还是从结点都有一个完整的数据副本,即主从之间的数据同步;2.主节点提供读写服务,从节点只提供读服务;3.可以实现读写分离的操作;4.有效扩展性能;-----------------------------------------------...原创 2019-07-02 11:19:48 · 127 阅读 · 0 评论 -
020 redis场景应用-分布式锁
场景: 程序中插入数据前,逻辑性先判断数据是否存在,存在则做更新,不存在则插入,在高并发的场景先,多个线程在同一个时间节点来访问此程序代码,会同时发出多条插入语句,违反了实际应用逻辑;思考解决方案:1、sychronized是线程锁,单机应用可解决,分布式并发中无法保障逻辑正常,其无法解决上述问题;2、数据库层面上设置锁,或者把数据的某个自动设唯一,可以解决上述问题,...原创 2019-07-08 10:16:50 · 179 阅读 · 0 评论 -
019 redis场景应用-分布式限流
1,限流概念:在开发高并发系统时,有很多种方法可用来保护系统,提升系统应用性能:缓存、降级、限流等。缓存:提升系统访问速度,增大系统处理能力;降级:服务出现问题或影响核心流程的性能时,需要暂时屏蔽,待高峰过去或问题解决后再打开,(某些场景下未不紧急或不关键的服务做优雅的降级处理,保障关键服务运行);限流:部分场景比如:稀缺资源(秒杀,抢购)、写服务(评论、下单)、频繁复杂查询(评论最后几页...原创 2019-07-06 10:44:09 · 111 阅读 · 0 评论