redis
文章平均质量分 82
bitcarmanlee
这个作者很懒,什么都没留下…
展开
-
redis为什么速度快小结
当客户端的请求抵达服务器以后,服务器会采用多路分配的策略,由一个线程接收所有请求,然后将请求派发到相关的工作线程并进行处理。但是,执行命令的模块,即文件事件分派器仍然是单线程,所以我们还是可以说redis是单线程模型。redis作为一种常见的kv数据库,在实际中使用非常广泛,其最大的特点就是"快",在系统中常被用来当做缓存快速获取想要数据。平时大家所说的单线程模式,对应上面的图片,其实指的是执行redis命令的核心模块是单线程,并不是说整个redis的服务就只有一个线程。复用:指共用一个线程或进程。原创 2022-10-13 15:46:14 · 673 阅读 · 0 评论 -
redis为什么要使用skiplist跳表
跳表是一种特殊的链表,特殊的点在于其可以进行二分查找。普通的链表要查找元素只能挨个遍历链表中的所有元素,而跳表则利用了空间换时间的策略,在原来有序链表的基础上面增加了多级索引,然后利用类似二分查找的思路来快速实现查找功能。跳表可以支持快速的查找,插入,删除等操作,时间复杂度为O(logn),空间复杂度为O(n)。原创 2022-10-13 10:13:53 · 913 阅读 · 0 评论 -
redis五种数据结构与六种底层实现
SDS同样遵循C语言中字符串以’\0’结尾的观里,并且这个空串不计算在len的长度中,另外还为该串额外分配了一个字节的空间,包括添加到末尾等操作,全由SDS中的函数自己完成,不需要调用者进行额外的操作。而在SDS中,是以处理二进制的方式来处理存放在buf数组中的数据,因为是二进制,所以不会对里面的数据类型有任何限制,也可以存放视频图像声音这类非文本数据。SDS有5中header类型,之所以要定义不同的类型,是为了让不同的字符串使用不同长度的header,达到节省内存的目的。5. zset 有序集合。原创 2022-10-12 15:37:56 · 420 阅读 · 0 评论 -
Redis常用数据结构
1.Redis数据结构概览Redis总共包含有五种数据结构:1.String,单个key,单个value,一个redis字符串中最大有512M。2. Hash 是一个键值对的集合3. List 是一个链表结构4. Set 是一个无序集合,并且无重复5. Zset(sort set) 是一个有序集合,无重复2.Stringvalue是字符串类型常用的命令包括set key val...原创 2020-03-19 14:55:25 · 456 阅读 · 0 评论 -
redis缓存命中率计算
登录到Redis服务器上以后,输入info命令,在Stats部分会看到如下数据# Statstotal_connections_received:7429663total_commands_processed:5927397034instantaneous_ops_per_sec:1total_net_input_bytes:1206431541918total_net_output_...原创 2020-03-18 18:41:05 · 1622 阅读 · 0 评论 -
缓存穿透,缓存击穿,缓存雪崩以及解决方案
1.缓存穿透一个缓存系统,正常情况下我们去查询的时候大部分key都是存在的。如果去请求一个缓存系统中没有的数据,此时系统如果没有经过优化,会将请求继续打到数据库上,但其实数据库上也没有这条数据。上面这种情况就叫缓存穿透。如果有人要对系统进行攻击,拿大量不存在的key去发起请求,你的系统将会产生大量的请求直接访问数据库,这样数据库的压力太大很有可能直接宕机,整个服务直接挂掉。针对上面这种情况...原创 2020-03-02 10:06:05 · 512 阅读 · 1 评论 -
redis 实战系列(一)
最近新接手的项目,要把数据最终推到线上的reids集群里。正好趁着这次项目的机会,彻底梳理一下redis相关的东东。个人观点是:凡是与数据相关的项目,实践性都特别强。对于这种特点的内容,我遵循的学习原则是先搞明白what,即搞清楚这东西到底是个什么鬼,有什么用。接下来就是how,即搞清楚这个东东怎么用,怎么最快速的搭建环境,并且让代码run起来。最后一步则是why,在有一定实践经验的基础上,来搞清楚原创 2016-07-07 15:16:09 · 1795 阅读 · 0 评论 -
redis 实战系列二:用python操作redis集群
python是搞数据同学的不二选择。因此面对redis集群,自然就想到怎么用python去操作redis集群了。1.python的redis模块无法操作redis集群之前用python里的redis模块操作过redis实例。但redis模块操作的不是redis集群,不知道能否实现操作集群的功能。写个简单的代码测试一下先:import redisdef redis_node(): node =原创 2016-07-07 16:14:53 · 32275 阅读 · 8 评论 -
redis安装与指标监控
1.redis安装在ubuntu上安装redis非常简单sudo apt-get install redis-server安装完成后,Redis服务器会自动启动。ps -aux | grep redusredis 31087 0.0 0.0 56348 19084 ? Ssl 8月27 1:00 /usr/bin/redis-server *:6379...原创 2019-08-29 16:58:49 · 303 阅读 · 0 评论