redis
redis技术的探究
旧时布衣
这个作者很懒,什么都没留下…
展开
-
redis系列(17)-- 高级话题之redis实现分布式锁
先简单说一下目前市面上分布式锁的解决方案,主要有三种:1)基于数据实现;2)基于redis实现;3)基于zookeeper实现;其实,对于作者而言,前两种的实现方式,在生产环境下并没有使用过,主要使用的是基于zookeeper实现的分布式锁,主要是因为可靠性的问题,当然实现起来也是比较复杂,这几种分布式锁的解决方案,还是要看具体的业务场景来进行选择的,比如,从性能上来说,那就优先考虑redis方案;当然,这些方案的核心思想都是一样的,只是为了在多台服务器集群中,只能保证一jvm进行操作;好了,今天主原创 2020-07-29 22:01:49 · 160 阅读 · 0 评论 -
redis系列(16)-- spring与redis的集成
前言:废话不说,上手就干;1、假设目前你手中已经做好了一个简单的ssm框架,我这里就不把ssm框架的配置发出来了,因为都是配置基础的配置文件,发出来看着会有点混乱的感觉,下面就直接贴出redis的配置文件与依赖2、redis依赖 <!--redis依赖start--> <dependency> <groupId>org.springframework.data</groupId> <a原创 2020-07-21 17:12:00 · 192 阅读 · 0 评论 -
redis系列(15)-- redis的安全设置
前言:废话不说,上手就干1、设置密码访问redis默认是没有密码的,这样不安全,任意用户都可以访问,可以启用使用密码才能访问redis,设置redis的访问密码,修改redis.conf中requirepass密码。密码要比较复杂,不容易破解,而且需要定期修改,因为redis的速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150k次的密码尝试,需要指定非常非常强大的密码来防止暴力破解2、开启访问密码设置修改 redis.conf , 使用 vim 命令。 找到 require原创 2020-07-08 16:16:29 · 429 阅读 · 0 评论 -
redis系列(14)-- 高级话题之高可用Sentinel哨兵
前言:废话不说,上手就干Sentinel哨兵是redis官方提供的高可用方案,可以用它来监控多个redis服务实例的运行情况。Redis Sentinel是一个运行在特殊模式下的redis服务器。Redis Sentinel是在多个Sentinel进程环境下相互协助工作的。Sentinel系统有三个主要任务:1)监控:Sentinel不断的检查主服务和从服务是否按照预期正常工作。2)提醒:被监控的redis出现问题时,Sentinel会通知管理员或其他应用程序。3)自动故障转移:监控的主Redis原创 2020-07-08 15:55:39 · 550 阅读 · 0 评论 -
redis系列(13)-- 高级话题之主从复制--读写分离--容灾处理
前言:废话不说,上手就干redis的持久化功能保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,但是由于数据是存储在一台服务器上的,如果这台服务器出现故障,比如硬盘问题等等,也会导致数据丢失。为了避免单点故障,我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障其他服务器依然可以继续提供服务。这就要求当一台服务器上的数据更新后,自动将更新的数据同步到其他服务器上,也就是主从复制。redis提供了复制功能来自动实现多台redis服务器的数据同步,我们可以通过部署多台red原创 2020-07-07 22:23:13 · 214 阅读 · 0 评论 -
redis系列(12)-- 高级话题之持久化
前言:废话不说,上手就干持久化可以理解为存储,就是将数据存储到一个不会丢失的地方,如果吧数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就算是一种持久化。redis的数据存储在内存中,内存是瞬时的,如果Linux宕机或重启,又或者redis崩溃或重启,所有的内存数据都会丢失,为解决这个问题,redis提供两种机制对数据进行持久化存储,便于发生故障后能迅速恢复数据一、RDB方式1、什么是RDB方式?redis database(RDB),就是在指定的时间间隔内原创 2020-07-07 18:21:58 · 186 阅读 · 0 评论 -
redis系列(11)-- 高级话题之redis事务(实现部分)
前言:废话不说,上手就干1、正常执行事务事务的执行步骤:首先开启事务,其次向事务队列中加入命令,最后执行事务提交1)mulit:用mulit命令告诉redis,接下来要执行的命令你先不要执行,而是把他们暂时存起来(开启事务)2)sadd address beijing 第一条命令进入等待队列(命令入队)3)sadd address shanghai 第二条命令进入等待队列(命令入队)4) exce 告知redis执行前面发送的两条命令2、事务执行exec之前,入队命令错误(语法错误;严重原创 2020-07-07 17:14:40 · 178 阅读 · 0 评论 -
redis系列(10)-- 高级话题之redis事务(理论部分)
前言:废话不说,上手就干事务是指一系列操作步骤,这一系类的操作步骤,要么完全执行,要么完全的不执行。redis中的事务是一组命令的集合,至少是两个或两个以上的命令,redis事务保证这些命令被执行时中间不会被任何其他操作打断1、multi语法:multi作用:标记一个事务的开始,事务内的多条命令会按照先后顺序被放进一个队列当中。返回值:总是返回OK2、exec语法:exec作用:执行所有事务块内的命令返回值:事务内的所有执行语句内容。事务被打断(影响)返回nil3、discard语法原创 2020-07-07 16:22:43 · 128 阅读 · 0 评论 -
redis系列(9)-- redis数据类型操作命令之有序集合(zset)类型
前言:废话不说,上手就干redis有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员,不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序1、zadd语法:zadd key score member[score member…]作用:将一个或多个member元素及其score值加入到有序集合key中,如果member存在集合中,则更新值;score可以是整数或浮点数返回值:数值,新添加的元素个数2、zr原创 2020-07-07 16:09:37 · 275 阅读 · 0 评论 -
redis系列(8)-- redis数据类型操作命令之集合(set)类型
前言:废话不说,上手就干redis的set是string类型的无序集合,集合成员是唯一的,即集合中不能出现重复的数据1、sadd语法:sadd key member [member…]作用:将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略,不会再加入返回值:加入到集合的新元素的个数,不包括被忽略的元素。2、smembers语法:smembers key作用:获取集合key中的所有成员元素,不存在的key视为空集合3、sismember语法:s原创 2020-07-07 14:07:48 · 205 阅读 · 0 评论 -
redis系列(7)-- redis数据类型操作命令之列表(list)类型
前言:废话不说,上手就干1、lpush语法:lpush key value[value…]作用:将一个或多个值value插入到列表key的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头返回值:数字,新列表的长度在 redis-desktop-manager 显示插入重复值到list列表类型2、rpush语法:rpush key value[value…]作用:将一个或多个值value插入到列表key的表尾(最右边),各个value值按从左到右的顺序依次插入到表尾返原创 2020-07-07 13:38:59 · 450 阅读 · 0 评论 -
redis系列(6)-- redis数据类型操作命令之哈希(hash)类型
前言:废话不说,上手就干。1、hset语法:hset hset表的key field value作用:将哈希表key中的域field的值设置为value,如果可key不存在,则新建hash表,执行赋值,如果有field,则覆盖值。返回值:如果field是hash表中新field,且设置成功,返回1;如果field已经存在,旧值覆盖新值,返回02、hget语法:hget key field作用:获取哈希表key中给定域field的值返回值:field域的值。如果key不存在或者field不存原创 2020-07-07 12:57:19 · 1367 阅读 · 0 评论 -
redis系列(5)-- redis数据类型操作命令之字符串(string)类型
前言:废话不说,上手就干。1、set语法:set key value作用:将字符串值value设置到key中。注意:向已经存在的key设置新的value,会覆盖原来的值。2、get语法:get key作用:获取key中设置的字符串值3、incr语法:incr key作用:将key中存储的数字值加1,如果key不存在,则key的值先被初始化为0再执行incr操作(只能对数字类型的数据操作,对于非数字的值无法操作)4、decr语法:decr key作用:将key中存储的数字值减1原创 2020-07-06 23:56:23 · 180 阅读 · 0 评论 -
redis系列(4)-- redis的5种数据类型
前言:废话不说,上手就干。1、字符串类型string字符串类型是redis种最基本的数据类型,它能存储任何形式的字符串,包括二进制数据,序列化后的数据,JSON化的对象甚至是一张图片,最大512M。keyvaluename张三2、哈希类型hashredis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。keyloginuserfieldvaluename张三address北京ag原创 2020-07-06 23:10:06 · 172 阅读 · 0 评论 -
redis系列(3)-- redis的key的操作命令
前言:废话不说,上手就干。1、keys语法:keys pattern作用:查找所有符合模式pattern的key,pattern可以使用通配符。通配符:1):表示0-多个字符,例如:keys * 查询所有的key。2)?:表示单个字符,例如na?e,匹配name、naae等等显示所有的key使用表示0或多个字符及使用?表示单个字符2、exists语法:exists key[key…]作用:判断可以是否存在返回值:整数,整数,存在返回1,其他返回0,使用多个key,返回存在的key原创 2020-07-06 22:52:30 · 670 阅读 · 0 评论 -
redis系列(2)-- redis基本操作命令
前言:废话不说,上手就干。1、redis基本操作命令redis默认为16个库(在redis.conf文件可配置,该文件很重要,后续很多操作都是这个配置文件)redis默认自动使用0号库。2、沟通命令redis>ping 返回 PONG解释:输入ping,redis给我们返回PONG,表示redis服务运行正常3、查看当前数据库中key的数据:dbsizeredis>dbsize解释:输入dbsize,返回当前数据库的key的数量4、redis默认使用16个库redis默认原创 2020-07-06 22:27:28 · 593 阅读 · 0 评论 -
redis系列(1)--基础篇
前言:废话不说,上手就干1、Window上安装RedisWindows版本的 Redis是 Microsoft 的开源部门提供的Redis. 这个版本的 Redis 适合开发人员学习使用,生产环境中使用 Linux 系统上的 Redis。1.1、下载官网:https://redis.io/我这边是之前下载好的 Redis-x64-3.2.100.zip,放到某个目录(例如 d:\tools\),即可使用。目录结构:我这里的系统是Windows10系统,直接双击 redis-server.e原创 2020-07-06 18:21:20 · 205 阅读 · 0 评论