Redis
文章平均质量分 58
linmao13037
工作、生活、学习
展开
-
18. Redis缓存穿透和雪崩
在执行读操作(查询等)的时候会先从缓存中读取,缓存中没有的话再去数据库中查询。如下图:用户想要查询一个数据,发现redis缓存中没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中(如秒杀),于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。正常缓存处理流程:这里需要注意和缓存穿透的区别,缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行一个访问,当这个key在失效的瞬原创 2022-06-16 09:18:32 · 132 阅读 · 0 评论 -
17. Redis主从复制
参考文档:https://blog.csdn.net/hello_cmy/article/details/105916258主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。1、数据原创 2022-06-15 17:05:20 · 163 阅读 · 0 评论 -
16. Redis发布订阅
订阅/发布消息图:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:Redis 发布订阅命令订阅实例第一个客户端订阅 test_ch 频道:第二个客户端订阅 test_ch 频道:Redis原理...原创 2022-06-15 16:50:37 · 318 阅读 · 0 评论 -
15. Redis 持久化
Redis是内存数据库,如果不能将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能!在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,恢复时将快照文件文件直接读入内存里。Redis会单独创建(fork)一个子进程来进行持久化 ,会将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中主进程是不进行任何IO操做的,这就确保了极高的性能。如果需要进行大规模的数据回复,且对于原创 2022-06-15 16:46:47 · 103 阅读 · 0 评论 -
14. Redis 配置文件
详细介绍:Redis详解(二)------ redis的配置文件介绍 (https://www.cnblogs.com/ysocean/p/9074787.html)常用配置文件信息:网络 NETWORK通用 GENERALRedis是内存数据库,不进行持久化,断电即失快照 SNAPSHOTTING安全 SECURITY客户端 CLIENTS内存管理 MEMORY MANAGEMENTAOF持久化配置 APPEND ONLY MODE...原创 2022-06-15 16:34:53 · 101 阅读 · 0 评论 -
13. Redis 事务
MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证:EXEC 命令负责触发并执行事务中的所有命令:Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:一个事务从开始到执行会经历以下三个阶段:事务中的错误使用事务时可能会遇上以下两种错误:对于发生在 EXEC 执行之前的错误,客户端以前的做法是检查命令入队所得的返回值:如果命令入队时返回 QUEUED ,那么入队成功;否则,就是入队失败。如果有命原创 2022-06-15 16:22:52 · 162 阅读 · 0 评论 -
12. Redis数据类型--Bitmaps 位图
位图不是实际的数据类型,而是在 String 类型上定义的一组面向位的操作。由于字符串是二进制安全 blob,它们的最大长度为 512 MB,因此它们适合设置最多 2^32 个不同的位。位操作分为两组:恒定时间单位操作,如将位设置为1或0,或获取其值,以及对位组的操作,例如对给定位范围内的设定位数进行计数(例如,总体计数)。位图的最大优点之一是,在存储信息时,它们通常可以极大地节省空间。例如,在一个系统中,不同的用户由增量用户ID表示,仅使用512MB内存就可以记住40亿用户的一位信息(例如,知道用户是原创 2022-06-15 16:15:36 · 385 阅读 · 0 评论 -
11. Redis数据类型--HyperLoglogs
Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储原创 2022-06-15 16:13:44 · 327 阅读 · 0 评论 -
10. Redis数据类型--Geospatial
Geospatial–Redis中文网 : http://www.redis.cn/commands/geoadd.html时间复杂度:每一个元素添加是O(log(N)) ,N是sorted set的元素数量。将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。这些数据将会存储到sorted set这样的目的是为了方便使用GEORADIUS或者GEORADIUSBYMEMBER命令对数据进行半径查询等操作。该命令以采用标准格式的参数x,y,所以经度必须在纬度之前。这些坐标的限制是可以被编入索引的原创 2022-06-15 16:11:21 · 130 阅读 · 0 评论 -
9. Redis数据类型--Sorted Set
Redis 有序集合(sorted set)Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。实例在以上实例中我们通过命令 ZA原创 2022-06-15 15:31:34 · 103 阅读 · 0 评论 -
8. Redis数据类型--Hash
Redis 哈希(Hash)Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。实例在以上实例中,我们设置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 runoobkey 中。Redis hash 命令Redis Hash类型操做命令实例:Map集合,key-map,原创 2022-06-15 15:24:05 · 100 阅读 · 0 评论 -
7. Redis数据类型--Set
Redis 集合(Set)Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合对象的编码可以是 intset 或者 hashtable。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。Set集合里边得值是不能重复得实例在以上实例中我们通过 SADD 命令向名为 runoobkey 的集合插入的三个元素。Red原创 2022-06-14 17:50:41 · 1337 阅读 · 0 评论 -
6. Redis数据类型--List
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。实例在以上实例中我们使用了 LPUSH 将三个值插入了名为 runoobkey 的列表当中。Redis 列表命令下表列出了列表相关的基本命令:注意:LPUSH:向左边依次添加元素RPUSH:向右边依次添加元素LPOP:左边第一个元素被弹出RPOP:右边第一个元素被弹出LRANGE:从左原创 2022-06-14 17:44:31 · 190 阅读 · 0 评论 -
5. Redis数据类型--String
Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:语法实例在以上实例中我们使用了 SET 和 GET 命令,键为 runoobkey。下表列出了常用的 redis 字符串命令:更多命令请参考:https://redis.io/commandsset: 设置值get : 获取key对应得值APPEND:追加得key不存在时,新建keySTRLRN : 查看key对应得内容得长度INCR: 自增1DECR: 自减1INCRBY: 增加指定量DECRBY: 减原创 2022-06-14 17:25:20 · 97 阅读 · 0 评论 -
4. Redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M.键值对集合,即编程语言中的Map类型。适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)存储、读取、修改用户属性.链表(双向链表)。增删快,提供了操作某一段元素的API。如:1,最新消息原创 2022-06-14 17:17:27 · 239 阅读 · 0 评论 -
3. Redis基础概念简介
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction原创 2022-06-14 17:10:40 · 103 阅读 · 0 评论 -
2. Redis性能测试工具redis-benchmark
redis-benchmark 性能测试的基本命令如下:注意:该命令是在 redis 的目录下执行的,而不是 redis 客户端的内部指令。菜鸟教程redis-benchmark教程: https://www.runoob.com/redis/redis-benchmarks.htmlredis 性能测试工具可选参数如下如下:测试用例:测试结果(部分):...原创 2022-06-14 17:07:26 · 1094 阅读 · 4 评论 -
1.Ubuntu下Redis源码安装
Ubuntu下Redis源码安装原创 2022-06-14 16:59:07 · 619 阅读 · 0 评论 -
1. Redis安装
启动 Redis查看 redis 是否启动?以上命令将打开以下终端:127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。以上说明我们已经成功安装了redis。下载地址:http://redis.io/download,下载最新稳定版本。本教程使用的最新文档版本为 2.8.17,下载并安装:执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序原创 2022-06-14 16:48:39 · 143 阅读 · 0 评论