
redis
文章平均质量分 59
redis
木子李ق
这个作者很懒,什么都没留下…
展开
-
Redis学习汇总
1、Linux下如何安装Redis原创 2022-03-19 16:27:52 · 144 阅读 · 0 评论 -
Linux下如何安装Redis
前提条件:我这边安装的Linux系统是CentOS7版本,使用的远程工具是Xshell 7。1、下载安装包。(1) . 首先执行命令 :yum install wget (我这在都是选择 y)(2). cd ~ (3). 创建文件夹 mkdir soft —> cd soft(4). 执行命令下载redis —> wget http://download.redis.io/releases/redis-5.0.5.tar.gz(5). 执行解压原创 2022-03-19 17:32:27 · 181 阅读 · 0 评论 -
Redis前置知识
为什么要使用内存数据库数据库整合网站: https://db-engines.com/en/基础选型、技术对比磁盘内存寻址:ms寻址:ns带宽: G/M带宽: 字节/秒 IO buffer: 成本问题磁盘与磁道、 扇区,一扇区512Byte带来一个成本变大, 索引4K 操作系统,无论你读多少, 都是最少4K从磁盘读取。 磁盘不一定固定片大小为4K, 取决于上层应用访问数据的量,4K只是支持你的使用,并且不会太浪费,也可以一些小的原创 2022-03-19 18:25:26 · 145 阅读 · 0 评论 -
redis简介及与memcached比较
简介: Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。 Redis内置了复制(replication),LUA脚本(Lua scripting),LRU驱动事(LRU evictio原创 2022-03-20 16:15:12 · 514 阅读 · 0 评论 -
redis的帮助命令
一、help类型Redis的帮助命令可以看到 help 命令可以帮助我们完成三种方式的帮助,分别是:help @<group> 这种方式是按分组的方式来显示命令的帮助 在 Redis 下有五种数据结构、有集群、有发布/订阅、有事务等。因此,可以通过组的方式来进行分类的查看。help <command> 可以查看具体某个命令的帮助。help <tab> 是在输入 help 命令后,可以通过 tab 键来自动补齐剩余的部分,如原创 2022-03-21 21:52:45 · 615 阅读 · 0 评论 -
Redis 五大数据类型 - String类型
简介: String类型是Redis最基本的数据类型,String存储是以Key-Value的形式存储的 String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 String类型是Redis最基本的数据类型,一个键最大能存储512MB。(1)、添加、查询、追加、获取长度,判断是否存在的操作127.0.0.1:6379> set k1 hello 添加OK127.0.0.1:6379> get k1原创 2022-03-21 22:06:49 · 202 阅读 · 0 评论 -
Redis 高级数据结构 bitmap(位图)
简介: 位图(bitmap)同样属于string数据类型。Redis中一个字符串类型的值最多能存储 512 MB 的内容,每个字符串由多个字节组成,每个字节又由 8 个Bit 位组成。位图结构正是使用“位”来实现存储的,它通过将比特位设置为0或1来达到数据存取的目的这大大增加了 value 存储数量,它存储上限为2^32 。位图本质上就是一个普通的字节串,也就是 bytes 数组。您可以使用getbit/setbit命令来处理这个位数组,位图的结构如下所示: 位图适用于一些特定...原创 2022-03-22 16:38:38 · 2411 阅读 · 0 评论 -
redis--位图(二)
举例一:添加一个字符串 abc, 将 a换成 b,然后随机添加一个数,查看内部结构。1、分析:abc 的 二进制位 1100001 1100010 1100011127.0.0.1:6379> set k1 abcOK127.0.0.1:6379> get tk"abc"2、修改abc 为 bbc比较点 二进制位 abc 1100001 1100010 1100011 bbc 1100010 1100010 1100011 差异 1...原创 2022-03-22 17:19:45 · 62 阅读 · 0 评论 -
redis--位图(三)
举例:模拟用户点赞、取消点赞、统计点赞次数,是否进行点赞原创 2022-03-22 17:26:20 · 58 阅读 · 0 评论 -
统计用户活跃度
网站用户签到的天数统计用户ID为key,天作为offset,上线置为1127.0.0.1:6379> setbit u1 1 1(integer) 0127.0.0.1:6379> setbit u1 7 1(integer) 0127.0.0.1:6379> BITCOUNT u1 0 -1(integer) 2按天统计网站活跃用户天作为key,用户ID为offset,上线置为1127.0.0.1:6379> setbit 20220322 1 1(int原创 2022-03-22 22:57:39 · 63 阅读 · 0 评论 -
Redis 五大数据类型 - List类型
列表类型简介列表(list)用于存储多个有序的字符串。列表是一种比较灵活的数据结构,可以充当栈和队列的角色,在实际开发上有很多应用场景列表的特点:列表中的元素是有序的,可以通过索引下标来获取某个元素或者某个范围内的元素列表列表中的元素是可以重复的操作命令lpush——先进后出,在列表头部插入元素 语法:LPUSH key value [value …]rpush——先进先出,在列表的尾部插入元素 语法:RPUSH key value [value …]lrange原创 2022-03-25 14:17:34 · 373 阅读 · 0 评论 -
Redis的发展史
1、redis 发展史redis使用的是IO多路复用模型,而IO多路复用模型的前身是BIO和NIOBIOBIO是Blocking IO的意思。在类似于网络中进行read, write, connect一类的系统调用时会被卡住。当用read去读取网络的数据时,是无法预知对方是否已经发送数据的。因此在收到数据之前,能做的只有等待,直到对方把数据发过来,或者等到网络超时。对于单线程的网络服务,这样做就会有卡死的问题。因为当等待时,整个线程会被挂起,无法执行,也无法做其他的工作。这种Block是不会影原创 2022-03-25 14:57:32 · 50 阅读 · 0 评论 -
Reids基础知识
1、Redis数据库(1)Redis每个数据库对外都是0开始递增的数字来命名,默认16个数据库,默认使用0号数据库,可以使用 select+数字 来选择数据库,并且数据库与数据库之间不共享数据 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> set name zhangsan OK 127.0.0.1:6379[1]> get name "zhangsan" 127.0.0.1:6379[1]> SELECT 2 OK原创 2022-03-25 15:26:17 · 79 阅读 · 0 评论 -
Redis 五大数据类型 - Set类型
对Set类型的操作命令1、sadd:添加元素,格式:sadd key member [member…] 127.0.0.1:6379> sadd myset v1 v2 v3 (integer) 3 127.0.0.1:6379> sadd myset v1 (integer) 02、smembers:获取集合中所有元素,格式:SMEMBERS key 127.0.0.1:6379> SMEMBERS myset 1) "v2" 2) "v1" 3原创 2022-03-25 16:36:51 · 407 阅读 · 0 评论 -
Redis 五大数据类型 - Hash类型
对Hash类型的操作命令1、hset:设置值。格式:hset key field value 127.0.0.1:6379> hset k1 name zhangsan (integer) 1 127.0.0.1:6379> hset k1 age 18 (integer) 12、hget:获取值。格式:hget key field 127.0.0.1:6379> hget k1 name "zhangsan" 127.0.0.1:6379> hget k1 a原创 2022-03-25 17:02:08 · 42 阅读 · 0 评论 -
Redis 五大数据类型 - Zset类型
Redis中对ZSet类型的操作命令原创 2022-03-25 17:30:23 · 54 阅读 · 0 评论 -
Redis PubSub发布订阅
简介 Redis PubSub 模块又称发布订阅者模式,是一种消息传递系统,实现了消息多播功能。发布者(即发送方)发送消息,订阅者(即接收方)接收消息,而用来传递消息的链路则被称为 channel。在 Redis 中,一个客户端可以订阅任意数量的 channel(可译为频道)。 消息多播:生产者生产一次消息,中间件负责将消息复制到多个消息队列中,每个消息队列由相应的消费组进行消费,这是分布式系统常用的一种解耦方式。流程示意图发布订阅模式的操作指令1、subscribe : 订阅消原创 2022-03-29 17:27:47 · 56 阅读 · 0 评论 -
Redis的事务
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 1、事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 2、事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。关于Redis的事务有几点说明Redis的事务仅仅是保证事务里的操作会被连续独占的执行,因为是单线程架构,在执行完事务内所有指令前是不可能再去同时执行其他客户端的请求。Redis的事务没有隔离级别的概念,因为事务提交前原创 2022-03-29 20:46:38 · 35 阅读 · 0 评论 -
Linux下安装 ---布隆过滤器(RedisBloom)
安装1、下载RedisBloom wget -c https://github.com/RedisBloom/RedisBloom/archive/refs/tags/v2.2.6.zip2、需要解压zip文件,安装 yum install unzip 已安装请忽略3、unzip v2.2.6.zip 执行解压命令4、cd RedisBloom-2.2.6/ 注意 一定切换到这个目录下5、make 执行make6、执行 ll 命令 可以看到生成了 redisbloom.原创 2022-04-02 21:36:27 · 153 阅读 · 0 评论 -
布隆过滤器(Bloom Filter)
简介 布隆过滤器(Bloom Filter)是由布隆在1970年提出的。它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(哈希函数)。 布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率而且删除困难。...原创 2022-04-03 19:30:59 · 53 阅读 · 0 评论 -
Redis的内存淘汰策略
过期策略1、定期删除Redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定期遍历这个字典来删除到期的 key。Redis 默认会每秒进行十次过期扫描(100ms一次),过期扫描不会遍历过期字典中所有的 key,而是采用了一种简单的贪心策略。1.从过期字典中随机 20 个 key;2.删除这 20 个 key 中已经过期的 key;3.如果过期的 key 比率超过 1/4,那就重复步骤 1; redis默认是每隔 100ms就随机抽取一些设置了过期时间的key原创 2022-04-16 18:43:27 · 38 阅读 · 0 评论 -
redis缓存淘汰策略原理分析
长期将Redis作为缓存使用,难免会遇到内存空间存储瓶颈,当Redis内存超出物理内存限制时,内存数据就会与磁盘产生频繁交换,使Redis性能急剧下降。此时如何淘汰无用数据释放空间,存储新数据就变得尤为重要了。解决这个问题就涉及到缓存系统的一个重要机制,即缓存数据的淘汰机制。Redis.conf中配置淘汰策略#设置Redis 内存大小的限制,我们可以设置maxmemory ,当数据达到限定大小后,会选择配置的策略淘汰数据 maxmemory 300mb #设置Redis的淘汰策略。 ....原创 2022-05-03 18:19:13 · 86 阅读 · 0 评论 -
Redis的持久化方式
https://blog.youkuaiyun.com/Dark_Blue__/article/details/117196648原创 2022-05-03 18:40:19 · 570 阅读 · 0 评论 -
RDB和AOF、(RDB、AOF混合)实操
rdb、aof实操原创 2022-06-22 23:41:58 · 689 阅读 · 0 评论 -
Redis中AKF问题
Redis中AKF问题原创 2022-06-25 22:09:13 · 101 阅读 · 0 评论 -
Redis主从复制、CAP原则
Redis主从复制、CAP原则原创 2022-06-27 22:04:12 · 163 阅读 · 0 评论 -
Redis哨兵模式
Redis哨兵模式原创 2022-07-03 17:06:13 · 94 阅读 · 0 评论 -
Redis 集群(Cluster)实践
Redis集群(Cluster)实践原创 2022-07-10 15:50:25 · 60 阅读 · 0 评论 -
Redis 高级数据结构 HyperLogLog
HyperLogLog(Hyper [ ˈhaɪpə(r) ]) 并不是一种新的数据结构(实际类型为字符串类型) ,而是一种基数算法 , 通过HyperLogLog可以利用极小的内存空间完成独立总数的统计,数据集可以是IP、Email、ID等。如果你负责开发维护一个大型的网站,有一天产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现?如果统计 PV 那非常好办,给每个网页一个独立的 Redis 计数器就可以了,这个计数器的 key 后缀加上当天的日期。原创 2023-06-06 15:27:20 · 629 阅读 · 0 评论 -
Redis 高级数据结构 GEO
Redis 3.2版本提供了GEO(地理信息定位)功能,支持存储地理位置信息用来实现诸如附近位置、摇一摇这类依赖于地理位置信息的功能。 地图元素的位置数据使用二维的经纬度表示,经度范围(-180, 180],纬度范围(-90,90],纬度正负以赤道为界,北正南负,经度正负以本初子午线(英国格林尼治天文台) 为界,东正西负。 业界比较通用的地理位置距离排序算法是GeoHash 算法,Redis 也使用GeoHash算法。原创 2023-06-06 15:28:53 · 654 阅读 · 0 评论