目录一、哨兵集群架构介绍二、下载安装Redis2.1、选择需要安装的Redis版本2.2、下载并解压Redis2.3、编译安装Redis三、搭建Redis一主两从集群3.1、准备配置文件3.1.1、准备主节点6379配置文件3.1.2、准备从节点6380配置文件3.1.3、准备从节点6381配置文件3.2、启动Redis主从复制集群3.3、查看Redis集群信息和主从复制效果3.4、关闭Redis四、搭建Redis三哨兵集群4.1、准备配置文件4.1.1、准备节点26379配置文件4.1.2、准备节点26380配置文件4.1.3、准备节点26381配置文件4.2、启动sentinel集群4.3
集群由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。Redis集群是一个提供在多个Redis节点间共享数据的数据集Redis集群可以支持多个Master能干嘛Redis集群支持多个Master,每个Master又可以挂载多个Slave。读写分离支持数据的高可用支持海量数据的读写存储操作由于Cluster自带Sentinel的故障转移机制,内置了高可用的支持,无需再使用哨兵功能。客户端与Redis的节点连接,不再需要连接集群中所有的节点,只
基础概念首先要了解几个概念:内网&外网代理curlgopher、ftp、dict伪协议file_get_contents()、fsockopen()、curl_exec()等函数内网&外网内网和外网的概念并不是绝对的,主要要明白的就是内网是外网无法直接访问的。简单的说,自己的单位或者家庭、小区内部有局域网;单位、家庭之外有覆盖范围极大的网络,比如internet,这个大网络延伸到了我们的单位、家庭(通过光纤、网线、电话线等)。我们把自己的局域网连接到internet上,那么我们的访问范围就从局域网扩展到了整个internet。这时候,就说局域网是内网,internet是外网。同理,如果你们单位
Redis数据结构介绍Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:贴心小建议:命令不要死记,学会查询就好啦Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网:Commands|Redis 可以查看到不同的命令:当然我们也可以通过Help命令来帮助我们去查看命令Redis通用命令通用指令是部分数据类型的,都可以使用的指令,常见的有:KEYS:查看符合模板的所有keyDEL:删除一个指定的keyEXISTS:判断key是否存在EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除TTL:查看一个KEY的
Redis面试题:1、什么是事务?2、Redis中有事务吗?3、Redis中的事务可以回滚吗?答:1、事务是指一个完整的动作,要么全部执行,要么什么也没有做2、Redis中有事务,Redis事务不是严格意义上的事务,只是用于帮助用户在一个步骤中执行多个命令。单个Redis命令的执行是原子性的,但Redis没有在事务上增加任何维持原子性的机制,所以Redis事务的执行并不是原子性的3、Redis事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令回滚,也不会造成后续的指令不做事务一般都是为原子性而生,既然Redis事务没有原子性,那他存在的意义
应用场景在某些场景下,我们会经常查询某些特定数据,例如用户跳转各种页面都会查询用户具备该页面权限。这种需求在流量较小的情况下没有什么问题,但如果出现大流量进行各种页面跳转的花,频繁IO对系统性能是有着非常严重的影响的。解决方案思路分析由于用户具备的权限变化较少,我们完全可以将数据缓存在内存中,从而减少与磁盘的IO,提高查询效率解决步骤编写切面注意笔者编码的特殊处理,由于查询时添加了中间件,为了避免redis宕机等情况导致业务查询不能正常走完流程,我们必须使用trycatch进行相应捕获处理,以便后续根据情况解决问题。packagecom.macro.mall.tiny.component;im
目录1.使用Redis优化登陆模块1.1使用Redis存储验证码1.2使用Redis存储登录凭证1.3使用Redis缓存用户信息1.使用Redis优化登陆模块使用Redis存储验证码:验证码需要频繁的访问与刷新,对性能要求较高;验证码不需要永久保存,通常在很短的时间后就会失效;分布式部署时,存在Session共享的问题使用Redis存储登陆凭证:处理每次请求时,都要查询用户的登陆凭证,访问的频率非常高使用Redis缓存用户信息:处理每次请求时,都要根据拼争查询用户信息,访问的频率非常高1.1使用Redis存储验证码在RedisKeyUtil类中添加:定义验证码的前缀添加登录验证码方法(验证码和
Redis从入门到实战1.什么是RedisRedis是一个基于内存的NoSQL数据库特征:键(key)—值(value)型key是一个string类型,value支持多种数据类型(常见的是string,hash,list,set,zset)单线程,每个命令具备原子性低延迟,速度快(基于内存,IO多路复用,基于C语言的良好的编码)支持数据持久化指出主从集群,分片集群支持多语言客户端2.Redis命令2.1Redis通用命令keys:查看符合模板的所有keydel:删除一个指定的keyexists:判断key是否存在expire:给key设定一个有效期,有效期到期key自动删除TTL:查看一个ke
1.设置账号密码端口configsetrequirepass123456设置密码为123456configgetrequirepass查看账号密码auth123456登入的时候输入这个确定账号密码1.首先连接到Redis服务器:```redis-cli```2.然后使用`CONFIGSET`命令设置`requirepass`参数并指定密码:```CONFIGSETrequirepass```其中,``是你想要设置的密码。3.最后,使用`SAVE`命令保存配置更改:```SAVE```CONFIGGETport查询redis的端口号#Redis配置文件样例#单位注意事项:当需要内存大小时,可以指
Redis如何做内存优化?1、缩短键值的长度缩短值的长度才是关键,如果值是一个大的业务对象,可以将对象序列化成二进制数组;首先应该在业务上进行精简,去掉不必要的属性,避免存储一些没用的数据;其次是序列化的工具选择上,应该选择更高效的序列化工具来降低字节数组大小;以JAVA为例,内置的序列化方式无论从速度还是压缩比都不尽如人意,这时可以选择更高效的序列化工具,如:protostuff,kryo等2、共享对象池对象共享池指Redis内部维护[0-9999]的整数对象池。创建大量的整数类型redisObject存在内存开销,每个redisObject内部结构至少占16字节,甚至超过了整数自身空间消耗