
Redis
Redis的学习使用
贺贺学编程
微信搜一搜【贺贺学编程】关注这个不一样的程序员,关注后回复【面试】获取海量面试题。
-
原创 Windows下运行Redis-网盘链接-简单粗暴-亲测有用!!!
链接:https://pan.baidu.com/s/1bTnb1s39ADv0tisbdxgavw 提取码:hzyd在解压后的文件目录下运行```2020-09-18 22:34:341092
7
-
原创 Redis万字总结,面试必备!!!
文章目录简介Redis常用命令String写作背景Redis学了也有一段时间了,而且也写了很多篇博客,最近面试,发现好多公司都有要求,而且有问到,当问到的时候,感觉已经有点忘了,复习之前博客的时候,有点乱也不好统一复习,于是就有了这篇文章。简介Redis(Remote Dictionary Server)远程字典服务,是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,可以用来做缓存,举个例子,当我们要从数据库查询数据的时候,我们可以首先通过Redis,2020-07-16 09:45:22998
0
-
原创 Java实现Redis的订阅发布功能,亲测可以!!!
文章目录简介发布消息订阅发布处理订阅频道测试简介首先我们得知道,当一个用户订阅了某个频道,那么他就会一直在那监听该频道是否发出消息,是一种阻塞的状态,所以,我们把订阅功能用多线程来实现,给每一个订阅者都分配一个线程。发布消息发布消息这个方法比较简单,我们只需要指定像哪个频道发布什么内容就行了,这里我把他们封装到了一个util类下,用静态方法,方便使用。public static void publishMsg(String channel, String message) { /2020-05-09 10:13:251214
0
-
原创 SpringBoot整合Redis
文章目录简介依赖配置使用简介刚开始学习redis的时候,用的是原生的的jedis,每次都去new一个对象,然后来用,在与SpringBoot整合后,被Spring托管了,然后可以可以自动装配了,感觉挺爽的,官方提供了一个RedisTemplate,我们想要使用只需导入依赖并简单的配置就行了。依赖先说一下这里的SpringBoot版本<version>2.2.7.RELEASE...2020-05-08 09:59:381089
0
-
原创 Redis通过哨兵模式实现主从复制的分布式
Redis中,可以通过执行slaveof命令或者设置slaveof选项,让一个服务器去复制另一个服务器,以达到同步的目的,其中被复制的服务器称为主服务器,复制的服务器是从服务器,主服务器负责写工作,从服务器负责读工作。下面进行演示主从复制,我们需要准备两台Redis服务器,简单起见,我在我的阿里云上配置两台不同端口号的Redis服务器,另一台端口号为63802020-05-03 09:38:10839
0
-
原创 学习了Redis的五大数据类型,其底层实现你了解吗?
文章目录String底层List底层Hash底层Set底层Zset底层String底层String的底层并不是简单的C字符串List底层Hash底层Set底层Zset底层2020-04-30 14:35:40850
0
-
原创 惊呆了!Redis中的字符串竟然不是C字符串!!!
文章目录SDS简介SDS的内部存储结构C字符串的内部存储结构SDS和C字符串的区别总结SDS简介Redis是用C语言写的,但是他的key竟然不是C字符串,这让我很惊讶。既然不是C字符串,那一定有一个数据类型吧,这个数据类型是简单动态字符串(Simple Dynamic String,SDS),这是什么鬼,第一次听说。既然用他,他肯定有厉害的地方,接下来就研究研究他厉害到哪!先说一下什么是k...2020-04-25 10:29:14944
0
-
原创 学了这么久的Redis,竟然还不知道事务
Redis支持事务吗,有说支持的,有说半支持的,我这里进行一波演示,看看到底支持不支持。在演示事务之前,首先要了解一下这几个命令。multi开启事务exec执行事务discard取消事务watch key [key ...]监视事务unwatch取消监视事务下面通过一个转账的例子进行演示事务。127.0.0.1:6379> multiOK127.0.0.1:6379>...2020-04-16 13:04:13838
0
-
原创 值得收藏的Redis基础总结
文章目录Redis简介Redis常用命令Redis五大数据类型StringHashListSetZSetRedis简介Redis(Remote Dictionary Server)远程字典服务,是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,可以用来做缓存,举个例子,当我们要从数据库查询数据的时候,我们可以首先通过Redis,如果Redis中存在,...2020-04-07 14:16:08913
0
-
原创 Redis——缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
Redis的缓存机制是:当有查询操作时,会先查询Redis,如果Redis中没有该key,那么就会去查询数据库,并把查询结果写入到Redis中,当下一次查询的时候,就会直接从Redis中查询缓存雪崩:由于内存的有限,我们一般会给缓存设置个有效期,如果redis中大量的key在同一时刻失效了,并且,这些失效的key被同时大量访问时,那么这些访问就会走数据库,而对数据库造成极大的压力缓存雪崩解...2020-02-29 15:50:25879
0
-
原创 Redis——持久化RDB和AOF
Redis的持久化有两种方式,分别是RDB和AOF,其中默认的方式是RDB,我们可以看到,我们的redis里有一个dump.rdb,的文件,其实这就是我们的持久化数据RDB持久化,保存的是一种状态,相当于快照,几十G的数据 => 几KB的快照,这种方式就是将内存中的数据以快照的方式写入到二进制文件中,默认文件名是dump.rdb触发快照有两种方式:一、当我们正常关闭服务的时候...2020-02-29 10:43:00796
0
-
原创 Redis——发布订阅功能
订阅着可以订阅一个或多个频道,发送者可以给指定的频道发布消息subscribe channel [channel ...],订阅一个或多个频道,例如订阅cctv1这个频道publish channel message,另一个客户端可以发布信息,发布成功之后,我们可以看到订阅者收到了信息ctrl + c退出...2020-02-29 09:13:26760
0
-
原创 Redis五大数据类型——ZSet
Redis中ZSet集合和普通集合一样,也是String类型元素的集合,也不能重复,不同的是每个元素都会关联一个float类型的分数,redis正是通过分数来为集合中的成员进行从小到大排序的,该分数是可以重复的zadd key score member,添加一个或多个有序集合,该集合有一个分数,用来排序zcard key,获取有序集合中的成员数zrange key start ...2020-02-28 16:01:08775
0
-
原创 Redis五大数据类型——Set
Redis的Set是String类型的无序集合,集合成员是唯一的,不能重复,底层是intset和hashtable两种数据结构,intset我们可以理解为数组,该数组是有序的,查找时通过二分,hashtable就是普通的哈希表sadd key member,给指定集合添加值scard key,获取集合的大小smembers key,获取集合的所有值,无序的sismemb...2020-02-28 15:37:56773
0
-
原创 Redis五大数据类型——List
Redis中List列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部或尾部,一个列表最多可以包含2^32 - 1个元素,其类似于Java中的LinkedList。lpush key value1 [value2],将一个或多个值插入到列表的头部,从左侧添加rpush key value1 [value2],将一个或多个值插入到列表的尾部,从右侧添加lran...2020-02-28 14:46:58755
0
-
原创 Redis——Java连接Redis
Java连接redis,需要导入一个依赖<!--redis--><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.1.0</version>&...2020-02-28 12:28:28781
0
-
原创 Redis五大数据类型——Hash
Hash特别适合存储对象,每个hash可以存储2^32 - 1个键值对,可以看成是一个key和value的map容器hset key field value,为指定的key设定field/valuehmset key field value,同时可以设置多个,对应hash表中的keyhget key field value,获取存储在hash中中的值,根据field获取valu...2020-02-28 12:03:32778
0
-
原创 Redis五大数据类型——String
String类型是Redis最基本的数据类型一个键最大能存储512MBset key value,set用于给key设定值,如果key已经有值了set会复写旧值get key,用户获取指定key的值,如果key不存在返回nil,如果key存储的不是字符串类型,返回一个错误setnx key value,只有key不存在时设置key的值getrange key star...2020-02-28 10:40:29787
0
-
原创 Redis常用命令及命名规范
redis命令用于在redis服务上执行操作,要在redis服务上执行命令,需要一个redis客户端del key,该命令用于在key存在时删除key,可以删除多个keydump key,查看某个key序列化的值exists kdy,判断某个key是否存在ttl key,查看key剩余多久有效时间,-1代表永久为了节省内存空间,我们可以给key设置有效时间...2020-02-28 09:48:12876
0
-
原创 Redis配置文件redis.config详解以及关闭Redis服务
redis.config位于redis的解压包目录下,如下图我们一般把该配置文件copy到我们的安装目录下,也就是与我们的bin目录同级接下来我们就可以对该配置文件进行修改,这里我们修改三个位置daemonize这是守护进程的意思,默认是no,我们修改为yes,这样当我们启动redis服务的时候,就不会占用我们的窗口了bind 127.0.0.1这个是绑定了我们的主机地...2020-02-28 08:09:121021
0
-
原创 Redis的安装
Redis(Remote Dictionary Server)远程字典服务,是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,既然是由C语言编写,那么他就需要gcc环境的支持,Redis的安装及使用一般都是在Linux环境中的,这里我们也是演示Linux环境下的安装,首先我们下载Redis,这是官网:https://redis.io,目前最新版是5.0....2020-02-27 20:59:50785
0