
Redis
redis学习笔记,学习视频https://www.bilibili.com/video/BV1S54y1R7SB?from=search&seid=8964235114260293934
TARS_
半退休程序员
展开
-
Redis笔记01:关于Nosql
关系型(Mysql为例)数据库大致使用历程:阶段一:单机Mysql早期网站访问量很小,单个mysql就可以支撑,更多的网站是静态网页(类似hao123.com)发展之后出现的问题1.存储的数据量大,一台机器不够2.数据量大(超过300W条数据)需要索引,索引过多一台机器内存不够3.早期的访问请求是读写混合,一台服务器承受不住阶段二:Memcached(缓存)+mysql+垂直拆分/读写分离(网站80%的访问量都是读,重复直接读取数据库,操作麻烦,数据库增加不必要的压力,可以使用缓存缓解原创 2020-11-17 15:24:45 · 142 阅读 · 0 评论 -
Redis笔记02:安装Redis
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU evictio.原创 2020-11-17 15:26:04 · 176 阅读 · 0 评论 -
Redis笔记03:redis-benchmark
redis-benchmark:https://www.runoob.com/redis/redis-benchmarks.html官方自带性能测试工具测试100个并发连接 100000个请求redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000分析原创 2020-11-17 15:26:35 · 141 阅读 · 0 评论 -
Redis笔记04:Redis基础及Key命令
Redis基础默认有16个数据库默认使用第0个可以使用select进行切换数据库127.0.0.1:6379> select 3 #切换到第三数据库OK127.0.0.1:6379[3]> DBSIZE #查看数据库大小(integer) 0清空当前数据库 flushdb清空全部数据库flushallRedis是单线程,是基于内存操作,不受CPU影响性能,其瓶颈是计算机的内存和带宽。RedisKey的命令127.0.0.1:6379&g原创 2020-11-17 15:27:54 · 130 阅读 · 0 评论 -
Redis笔记05:五大数据类型-String
基础127.0.0.1:6379> set name zhangsan #设置值OK127.0.0.1:6379> get name #获取值"zhangsan"127.0.0.1:6379> keys * #查看所有key1) "name"127.0.0.1:6379> exists name #查看某个key是否存在(integer) 1127.0.0.1:6379> append name "(fawaikuangtu)" #给原创 2020-11-17 15:28:25 · 197 阅读 · 1 评论 -
Redis笔记06:五大数据类型-List
List在redis中 list可做为栈 队列 阻塞队列基础127.0.0.1:6379> lpush list one #将一个值或者多个值插入列表头部(左)(integer) 1127.0.0.1:6379> lpush list two(integer) 2127.0.0.1:6379> lpush list three(integer) 3127.0.0.1:6379> lrange list 0 -1 #获取list中的值1) "three"原创 2020-11-17 15:29:03 · 119 阅读 · 0 评论 -
Redis笔记07:五大数据类型-Set
SetSet中的值不能重复基础127.0.0.1:6379> sadd set1 hello #set集合添加元素(integer) 1127.0.0.1:6379> sadd set1 world(integer) 1127.0.0.1:6379> sadd set1 666(integer) 1127.0.0.1:6379> smembers set1 #查看指定set的所有值1) "hello"2) "666"3) "world"127.0.0.原创 2020-11-17 15:29:38 · 107 阅读 · 0 评论 -
Redis笔记08:五大数据类型-Hash
Hash基础127.0.0.1:6379> hset myhash name zhangsan #设置一个值 k-v格式(integer) 1127.0.0.1:6379> hget myhash name #获取指定hash的K对应的V"zhangsan"127.0.0.1:6379> hset myhash age 11 sex men #设置多个值(integer) 2127.0.0.1:6379> hmget myhash name age #获原创 2020-11-17 15:30:12 · 88 阅读 · 0 评论 -
Redis笔记09:五大数据类型-Zset
Zset 有序集合在set的基础上增加一个值,set ( K V) 、Zset (K SCORE V)基础127.0.0.1:6379> zadd myset 1 one #添加一个值(integer) 1127.0.0.1:6379> zadd myset 2 two 3 three #添加多个值(integer) 2127.0.0.1:6379> zrange myset 0 -11) "one"2) "two"3)原创 2020-11-17 15:30:44 · 96 阅读 · 0 评论 -
Redis笔记10:三种特殊数据类型-Geospatial
Geospatial 地理位置可以用于朋友定位、附近的人、两地的距离Redis在3.2版本中推出了geoGEOADD 命令 - 将指定的地理空间位置(纬度、经度、名称)添加到指定的key中https://www.redis.net.cn/order/3685.html两极无法添加,一般会下载城市经纬度信息,通过Java程序一次性导入!有效的经度从-180度到180度。有效的纬度从-85.05112878度到85.05112878度。当坐标位置超出上述指定范围时,该命令将会返回一个错误.原创 2020-11-17 15:31:36 · 223 阅读 · 0 评论 -
Redis笔记11:三种特殊数据类型-Hyperloglog
Hyperloglog在允许容错的情况下 可以使用Hyperloglog127.0.0.1:6379> pfadd mykey a b c d e f g h i j #创建第一组元素(integer) 1127.0.0.1:6379> PFCOUNT mykey #统计第一组元素(integer) 10127.0.0.1:6379> PFADD mykey2 i j k a b n m #创建第二组元素(integer)原创 2020-11-18 08:55:02 · 147 阅读 · 0 评论 -
Redis笔记12:三种特殊数据类型-Bitmap
Bitmap127.0.0.1:6379> setbit sign 0 1 #以打卡签到为例 添加签到数据(integer) 0127.0.0.1:6379> setbit sign 1 0(integer) 0127.0.0.1:6379> setbit sign 2 0(integer) 0127.0.0.1:6379> setbit sign 3 1(integer) 0127.0.0.1:6379> setbit sign 4 1(in原创 2020-11-18 08:55:22 · 116 阅读 · 0 评论 -
Redis笔记13:Redis事务
Redis事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。正常执行事务127.0.0.1:6379> multi #开启事务OK127.0.0.1:6379> set name zhangsan #命令入队QUEUED127.0.0.1:6379>.原创 2020-11-18 08:55:54 · 118 阅读 · 0 评论 -
Redis笔记14:springboot集成Redis-整合测试
一:导入依赖Springboot中所有相关于springboot的数据操作都子啊spring date中所以需要导入SpringDateRedis依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>原创 2020-11-18 08:56:30 · 188 阅读 · 0 评论 -
Redis笔记15:springboot集成Redis-自定义配置
#原文:https://www.cnblogs.com/leeeeemz/p/12766186.html一、pom<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>二、application.ymlredi转载 2020-11-18 08:58:53 · 306 阅读 · 0 评论 -
Redis笔记16:配置文件详解
实际测试中密码设置成功未起作用,可能在不同的redis版本中可能存在不同原创 2020-11-18 09:00:24 · 97 阅读 · 0 评论 -
Redis笔记17:持久化-RDB/AOF
redis是内存数据库,当服务器进程退出时,服务器中数据也会消失,所以需要将数据保存到磁盘中,因此redis提供了持久化功能。RDB在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是snapshot快照,它恢复时是将快照文件直接读到内存里。fork:在linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会被exec调用,出于效率考虑,linux中引入了“写时复制技术”,一般情况父进程和子进程会共用同一段物理内存,只有进程空间的各段的内容要发生变化时,才会.原创 2020-11-18 09:01:32 · 118 阅读 · 0 评论 -
Redis笔记18:redis 发布订阅
redis 发布订阅发布订阅模式中的角色发布者(publisher)订阅者(subscriber)频道(channel)如图所示:发布者发布消息到频道,订阅了频道的订阅者可以收到消息,订阅者可以订阅不同的频道。通信模型RedisServer中可以创建若干channel一个订阅者可以订阅多个channel当发布者向一个频道中发布一条消息时,所有的订阅者都将会收到消息Redis的发布订阅模型没有消息积压功能,即新加入的订阅者收不到发布者之前发布的消息当订阅者收到消息时,消息内容如转载 2020-11-18 09:02:46 · 146 阅读 · 0 评论 -
Redis笔记19:redis 主从复制
概念主从复制,是指将一台redis服务器的数据,复制到其他的redis服务器,前者称为主节点,后者称为从阶段。数据的复制是单向的,只能由主节点复制到从节点。默认情况下每台服务器都是主节点,可以有多个从节点,但是一个从节点只能有一个主节点。主从复制的作用主要包括:1.数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。2.故障恢复:当主节点出现问题,可以有从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。3.负载均衡。4.高可用。redis一般在项目中是不原创 2020-11-18 09:03:18 · 138 阅读 · 0 评论 -
Redis笔记20:redis 哨兵
主从配置中:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,人工干预,费事费力,还会造成一段时间内服务不可用。更多时候,我们优先考虑哨兵模式。哨兵概述:哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例故障切换(failover):假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可.原创 2020-11-18 09:03:41 · 147 阅读 · 0 评论