Redis简介-创新互联

Redis数据库
  • 什么是Redis数据库?
  • 为什么Redis访问数据要比Mysql快?
  • Redis(key键操作)
  • 原子性?
  • Redis String类型的数据结构
  • Redis List列表
    • Redis List列表的数据结构

为金门等地区用户提供了全套网页设计制作服务,及金门网站建设行业解决方案。主营业务为网站设计制作、做网站、金门网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
什么是Redis数据库?

Redis数据库是NoSQL数据库的一种,类似于高德地图这种软件中的对于一些地区等常用信息,我们不免要重复访问,如果每次访问的时候都要去调取mysql数据库,难免会影响使用性能,如果你认为Redis是一个key value store(键值存储), 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache(缓存), 可能只是它保存一些频繁访问的临时数据。


为什么Redis访问数据要比Mysql快?

1.因为Redis是基于内存存储的,而mysql是基于磁盘存储的
2.Redis是单线程的多路复用IO
3.Redis存储的是k-v格式的数据。时间复杂度是O(1),常数阶,而MySQL引擎的底层实现是B+Tree,时间复杂度是O(logn),对数阶。Redis会比MySQL快一点点。


Redis(key键操作)

查看当前库所有key
在这里插入图片描述
判断某个key是否存在
在这里插入图片描述
查看key是什么类型
在这里插入图片描述
删除key数据
在这里插入图片描述
在这里插入图片描述
del和unlink的区别 del:直接将数据删除 unlink:根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作

为给定的key设置过期时间
在这里插入图片描述

查看还有多少秒过期(-1表示永不过期,-2表示已过期)

在这里插入图片描述

切换数据库

在这里插入图片描述

查看当前数据库的key的数量
在这里插入图片描述
flushdb清空当前库
flushall通杀全部库


原子性?

原子性:所谓原子操作是指不会被线程调度机制打断的操作
这种操作一旦开始,就一直运行到结束,中间不会有任何context switch(切换到另一个线程)
(1)在单线程中,能够在单条指令中完成的操作都可以认为是“原子操作”,因为中断只能发生于指令之间
(2)在多线程中,不能被其它进程(线程)打断的操作就叫原子操作
Redis单命令的原子性主要得益于Redis的单线程


Redis String类型的数据结构

String的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList ,采用预分配冗余空间的方式来减少内存的频繁分配.
在这里插入图片描述

如图中所示,内部为当前字符串实际分配的空间capacity-般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M ,扩容时一次只会多扩1M的空间。需要注意的是字符串大长度为512M。


Redis List列表

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元索到列表的头部(左边)或者尾部(右边)。
它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

Redis List列表的数据结构

List的数据结构为快速链表quickList
首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是ziplist ,也即是压缩列表
它将所有的元素紧挨着一起存储 ,分配的是一块连续的内存
当数据量比较多的时候才会改成qucklist
因为普通的链表需要的附加指针空间太大,会比较浪费空间。比如这个列表里存的只是int类型的数据,结构上还需要两个额外的指针prev和next。
在这里插入图片描述

Redis将链表和ziplist结起来组成了quicklist, 也就是将多个ziplist使用双向指针串起来使用。这样既满足了快速的插入删除性能,又不会出现太大的空间冗余。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

当前名称:Redis简介-创新互联
网站链接:https://www.cdcxhl.com/article10/pgpgo.html

成都网站建设公司_创新互联,为您提供网站营销做网站网站内链网站制作品牌网站制作App设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发