当前位置:首页 > 数码 > Redis初级适用技巧-NoSQL数据库 (redis初始化数据)

Redis初级适用技巧-NoSQL数据库 (redis初始化数据)

admin6个月前 (05-07)数码51

性能

可经过命令行的形式启动数据库性能,也可以经过性能文件的形式启动数据库性能。由于数据库的性能选项较多,经常使用命令行的形式并不简便,因此数据库开发和治理人员大多驳回修正性能文件的形式启动数据库性能。

Redis性能文件位于Redis装置目录下,名为redis.conf。在本书前面章节中曾经引见过Redis性能文件中的局部性能项,如参数port修正端口号,参数daemonize启动守护进程,参数databases修负数据库的数量。除此之外Redis还支持其余性能选项,如能否开启耐久化、日志级别等。

Redis多个数据库之间并不是齐全隔离的,且Redis并不支持为每个数据库设置不同的访问明码。客户端访问数据库时,要么没有权限访问恣意一个数据库,要么能访问一切数据库。经常使用FLUSHALL命令可以清空一个Redis实例中一切数据库中的数据。

备份与复原

Redis十分轻量级,一个空的Redis占用的内存只要1MB左右,即使多个Redis实例也不存在额外占用很多内存的疑问,因此倡导不同的运行经常使用不同的Redis实例存储数据。

由于Redis一切数据都存储在内存中,当Redis数据备份活期地经过异步形式保留到磁盘上时,该形式称为半耐久化形式。当每一次性的数据变动都写入aof文件外面时,则称为全耐久化形式。

Redis提供的两种不同的耐久化方法中,半耐久化RDB(Redis/>

RDB更适宜数据备份,自动开启;而AOF更适宜用来保留数据,自动封锁。详细的耐久化形式可以依据业务的特点来定,独自经常使用其中一种形式或许组合经常使用都可以。这里解说一下独自驳回RDB或AOF启动数据耐久化的缺陷,读者在详细经常使用中应依据业务接受的才干启动选用,如下所示。

(1)独自经常使用RDB时。由于RDB耐久化形式是周期性地启动快照备份,若在两个备份节点间主机异常宕机,一切从上次启动快照的时期节点到主机宕机时所发生的数据将所有失落。

(2)独自经常使用AOF时。AOF机制将Redis口头的每一条命令所有追加到磁盘中,少量数据的写入会降落主机及Redis的性能,主机或许会反响机灵或发生卡顿现象。

除此之外,Redis也支持同时开启RDB和AOF。系统重启后,Redis会优先经常使用AOF来复原数据,将数据的损失降落到最小。RDB可以视为冷备,在AOF文件失落或损坏无法用的时刻,经常使用RDB来启动数据的极速复原。

1.半耐久化RDB形式

开启智能快照。在redis.conf性能文件中SAVE性能项有2个值,详细如下所示。

#SavetheDBtodisk.##save[...]#save<指定时时期隔><口头指定次数降级操作>……省略局部代码……save3005

SAVE参数的两个值区分为:指定距离时期和改变的键的个数,示意300秒内有5个更改,则将内存中的数据快照写入磁盘。该性能项的意义为,当在指定的时期内被更改的键的个数大于指定的个数时,Redis会智能将内存中的一切数据启动快照,并创立dump.rdb文件存储在硬盘上,以此成功数据备份。

禁用智能快照,只要要将一切的SAVE参数删除即可。经常使用SAVE命令创立以后数据库的备份,,详细如下所示。

127.0.0.1:6379>SAVE输入结果:OK

SAVE命令自动将备份文件dump.rdb保留至Redis的装置目录,检查备份文件所在的Redis装置目录详细如下所示。

127.0.0.1:6379>CONFIGGETdir输入结果:1)"dir"2)"/"

也可以经常使用BGSAVE命令,将SAVE命令放至后盾运转,详细如下所示。

127.0.0.1:6379>BGSAVE输入结果:Backgroundsavingstarted

两个命令的区别在于,SAVA命令口头时会阻塞Redis主机进程,直至备份环节完结。而BGSAVE命令则会创立一个子程序,不影响Redis主机的父进程。

启动数据备份前检查数据库蕴含键的数量及详细状况,详细如下所示。

127.0.0.1:6379>DBSIZE输入结果:(integer)17127.0.0.1:6379>KEYS*输入结果:1)"city2"2)"subject2"3)"website3"4)"website4"5)"city3"6)"website2"7)"city1"8)"newbook"9)"computer"10)"website9"11)"fruits"12)"subject1"13)"website"14)"web"15)"drinks"16)"website1"17)"stock"

由上述结果可知,以后数据库中含有17条数据。

为了展示备份数据的复原,先将备份数据移动到其余文件夹,防止失落,而后经常使用FLUSHDB命令删除以后数据库的数据,详细如下所示。

[root@qfedu~]#mv/dump.rdb/data///清空以后数据库127.0.0.1:6379>FLUSHDB输入结果:OK127.0.0.1:6379>KEYS*输入结果:(emptyarray)

由上述结果可知,以后数据库为空。

经常使用systemctlstopredis命令模拟数据库宕机。复原数据时,将备份文件dump.rdb移动到Redis的装置目录下,而后启动服务即可成功,详细如下所示。

[root@qfedu~]#systemctlstopredis[root@qfedu~]#cp/tmp/dump.rdb/[root@qfedu~]#systemctlstartredis

最后,检查Redis数据库,验证数据能否复原,详细如下所示。

127.0.0.1:6379>ping输入结果:PONG127.0.0.1:6379>KEYS*输入结果:1)"city2"2)"subject2"3)"website3"4)"website4"5)"city3"6)"website2"7)"city1"8)"newbook"9)"computer"10)"website9"11)"fruits"12)"subject1"13)"website"14)"web"15)"drinks"16)"website1"17)"stock"

由上述结果可知,数据曾经被成功复原。

2.全耐久化AOF形式

AOF形式经过日志记载每个写操作,并追加到文件中。AOF文件的保留位置是经过dir参数设置的,自动的文件名是appendonly.aof,可以经过appendfilename参数修正该称号。

AOF耐久化的参数性能如下所示。

(1)appendonlyyes:开启AOF耐久化性能;

(2)appendfilenameappendonly.aof:AOF耐久化保留文件名;

(3)appendfsyncalways:每次口头写入都会口头同步,最安保也最慢;

(4)#appendfsynceverysec:每秒口头一次性同步操作;

(5)#appendfsyncno:不被动启动同步操作,而是齐全交由操作系统来做,每30秒一次性,最快也最不安保;

(6)auto-aof-rewrite-percentage100:当AOF文件大小超越上一次性重写时的AOF文件大小的百分之多少时会再次启动重写,假设之前没有重写过,则以启动时的AOF文件大小为依据;

(7)auto-aof-rewrite-min-size64mb:准许重写的最小AOF文件大小,性能写入AOF文件后,要求系统刷新硬盘缓存的机制。

若只性能了AOF,当重启Redis服务时,Redis会加载AOF文件,经过一一口头AOF文件中的命令将数据载入到内存中。

批量口头

在实践运行中,会发生少量用户在必定时期内发生少量数据的状况,而这些数据须要被极速的创立与装载。前文曾经解说了如何经过一条条指令成功拔出数据以及治理数据,接上去解说如何批量的口头多条Redis命令。

创立一个txt文件,将须要口头的命令写入文件中,每一行即代表一条命令。假定命令如下所示。

SETk1v1SETk2"www.fengyunedu.cn"RPUSHlist3"a1""b2""c3""d4"SADDsset4onetwothreeHSEThash5hsk1"hsv1"ZADDzset6300"E"200"F"400"G"MSETk3v3k4v4k5v5

假定将该文件命名为data1.txt,并存储在/目录下。为到达更显著的试验成果,需清空数据库中的一切数据,详细如下所示。

127.0.0.1:6379>FLUSHALL输入结果:OK127.0.0.1:6379>KEYS*输入结果:(emptyarray)

经常使用cat命令批量口头命令文件,详细如下所示。

[root@qfedu~]#cat/data1.txt|redis-cliOKOK(integer)4(integer)3(integer)1(integer)3OK

为了进一步验证命令文件能否口头成功,可经过KEYS命令检查Redis数据库中的所有数据,详细如下所示。

127.0.0.1:6379>KEYS*输入结果:1)"sset4"2)"k3"3)"zset6"4)"k5"5)"k2"6)"k1"7)"hash5"8)"list3"9)"k4"

图形化治理工具

Redis数据库治理不只支持Redis-cli命令行工具,还支持多种交互性友好的图形化治理工具。针对Redis数据库存储数据为键值对类型的特点,繁难引见5个知名的Redis图型化治理工具,如下所示。

(1)RedisDesktopManager是一款基于Qt5的跨平台Redis可视化桌面治理工具,也是目前为止经常使用率最广的可视化工具。它支持全平台,例如(Windows7以上版本)、、OS等。

(2)AnotherRedisDesktopManager是上的一个开源名目,不只开源,而且提供在Windows、macOS上平台的装置包,体积小,齐全不要钱。

(3)Medis是Mac系统上一款界面好看,而且易于经常使用的Redis数据库治理工具。

(4)RedisView是一个开源跨平台的国产Redis图形化界面工具。

(5)FastoRedis是一个跨平台的Redis数据库治理软件,也是不要钱软件,繁难启动Redis集群监控和治理。

接上去以AnotherRedisDesktopManager为例,展示经常使用图形化工具治理Redis数据库。

在GitHub或许Gitee(开源中国)网站下载AnotherRedisDesktopManager软件包,而后装置该软件。双击关上该软件,经过设置选项将页面设置为简体中文,利于用户操作界面。

单击确定按钮,而后新建一个衔接,填写Redis数据库信息,衔接Redis数据库。

该软件正在对Redis数据库启动远程衔接,因此须要提早开启Redis数据库的端口,封锁本地包全形式以及封锁仅限本地衔接的性能项,最后封锁系统的防火墙,详细如下所示。

[root@qfedu~]#vim/etc/redis/6379.conf……protected-modeno#将值yes改为no#bind127.0.0.1-::1#注释该性能项……[root@qfedu~]#systemctlstopfirewalld[root@qfedu~]#systemctldisablefirewalld

回到软件衔接界面,衔接Redis数据库

单击刷新按钮,可出现Redis数据库及所在系统的相关信息。至此,Redis数据库图形治理工具曾经装置并成功衔接数据库,用户可经过相关揭示对数据库启动自主操作。


(一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别

大数据时代到来,短视频和大量图片导致数据表非常大,频繁的查询导致传统的关系型数据库难以满足需求,因此非关系型数据库就应运而生。 Redis数据库是NoSQL是一种,在分布式数据库的CAP原理中,Redis满足强一致性和高可用性,强一致性就是要保证数据的质量,高可用性即稳定性,本文简单介绍了非关系型数据库是什么、能干嘛,与关系型数据库的区别。 一、NoSQL定义NoSQL(Not Only SQL),意即“不仅仅是SQL”,泛指非关系型数据库。 NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,例如谷歌或Facebook每天为他们的用户收集万亿比特的数据,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 二、NoSQL的优势1.易扩展NoSQL数据库种类繁多,但有一个共同的特点是去掉关系数据库的关系型特性。 数据间无关系,这样就非常容易拓展,无形之间在架构层面上带来了可扩展的能力。 2.大数据量高性能NoSQL数据库具有非常高的读写性能,尤其在大数据量下,一秒钟写8万,读16万次3.多样灵活的数据模型NoSQL无需事先为要存储的数据建立字段,随时可以根据存储自定义数据格式,而在关系型数据库里增删字段,比如在存储微信用户信息的表里添加一个手机号字段,简直就是噩梦。 和NoSQL关系型数据库&非关系型数据库的对比三、3V+3高海量:微博多样:呈现方式是图片、文字等,终端是手机、电脑、pad等。 实时的铁路信息需要做到实时更新,但是做不到绝对的实时,只能做到准实时。 高并发在抢火车票的时候是高并发的高可扩(扩展性):横向扩展:针对多台机器,多台机器整合成一个集群纵向扩展:针对一台机器,2G不够了,插两条4G就变8G,但纵向扩展长期来看总有尽头四、NoSQL数据模型简介(一)以一个电商客户、订单、订购、地址模型来对比关系型数据库和非关系型数据库数据库1.关系型数据库:2.非关系型数据库:就像一个jason串一样,被称为聚合模型(二)思考为什么上述情况可以用聚合模型来处理?1.在关系型数据库里用left join 关联查询,但是涉及多张表,查询语句很长很复杂2.跨库3.分布式事务无法支持太多并发 ·只要查到客户信息的ID,所有的信息都放在一起,不用像关系型数据库查很多表(三)、聚合模型键-值对2.文档型数据库(Bson格式比较多):见上截图Monddb,最像关系型数据库的非关系型数据库3.列存储数据库:4. 图关系数据库:就像我们复杂的亲戚人际关系,如:微博上你的好友关注什么话题五、在分布式数据库中CAP原理CAP+BASE(一)CAPACID:传统的关系型数据库CAP:NoSQLCAP只能三个中满足两个,而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须要实现的,我们只能在一致性和可用性之间进行权衡。 CA:传统型Oracle数据库AP:大多数网站架构的选择CP:Redis、Mongodb强一致性(C),淘宝商品的点赞数不用做到强一致性;但公司每日的早晚打卡软件就需要做到强一致性,不然影响员工的KPI高可用性(A),网站不能崩了分区容忍性(P)补充:C与A的选择(二)BASE双十一当时可能商品点赞数,但是只统计到6000,是弱一致性,但是高峰结束之后还是想让数据不那么离谱,所以加上BASE,BASE最重要的就是最终执行牺牲C,换取AP集群就相当于之前的负载均衡(一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别标签:操作简单oracle数据库数据格式网络高性能字段分区集群

Redis

redis除了做缓存还能做什么

Redis应该说是目前最受欢迎的NoSQL数据库之一了。 Redis通常被作为缓存组件,用作缓存数据。 不过,除了可以缓存数据,其实Redis可以做的事还有很多。 下面列举几例,供大家参考。 1、最新列表例如新闻列表页面最新的新闻列表,如果总数量很大的情况下,尽量不要使用select a from A limit 10,尝试redis的 LPUSH命令构建List,一个个顺序都塞进去就可以啦。 不过万一内存清掉了咋办? (推荐学习:Redis视频教程)也简单,查询不到存储key的话,用mysql查询并且初始化一个List到redis中就好了。 2、排行榜应用实现这个功能主要用到的redis数据类型是redis的有序集合zset。 zset 是set 类型的一个扩展,比原有的类型多了一个顺序属性,此属性在每次插入数据时会自动调整顺序值,保证value值按照一定顺序连续排列。 我们假设是一个游戏经验值排行榜,那主要的实现思路是:1、在一个新的玩家参与到游戏中时,在redis中的zset中新增一条记录(记录内容看具体的需求)score为02、当玩家的经验值发生变化时,修改该玩家的score值3、使用redis的ZREVRANGE方法获取排行榜3、计数器应用Redis的命令都是原子性的,你可以轻松地利用INCR、DECR命令进行原子性操作,来构建计数系统。 由于单线程,可以避免并发问题,保证不会出错,而且100%毫秒级性能。 比如在一个 web 应用程序中,如果想知道用户在一年中每天的点击量,那么只要将用户 ID 以及相关的日期信息作为键,并在每次用户点击页面时,执行一次自增操作即可。 4、数据排重Redis set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口。 实现方案:set 的内部实现是一个 value永远为null的HashMap,实际就是通过计算hash的方式来快速排重的,这也是set能提供判断一个成员是否在集合内的原因。 5、实时的反废品系统反废品系统通常都是基于关键词的,使用Redis储存关系词,能够利用Redis的高性能,为监控系统提供稳定及精确的实时监控功能,典型的案例如,邮件系统、评论系统等。 6、可以发布、订阅的实时消息系统Redis中Pub/Sub系统可以构建实时的消息系统,比如,很多使用Pub/Sub构建的实时聊天应用。 设计思路:服务端发送消息(含标题,内容),标题按照一定规则存入redis,同时标题(以最少的信息量)推送到客户端,客户点击标题时,获取相应的内容阅读.如果未读取,可以提示多少条未读,redis能够很快记数根据一定时间清理缓存技术实现:需要redis数据库,客户端websocket,服务器端websocket7、队列应用队列在现在程序中应用十分广泛,比如日志推送、任务处理等等。 以往通常使用http sqs实现队列,其实,使用redis的list类型,也可以实现队列。 更多Redis相关技术文章,请访问Redis数据库使用入门教程栏目进行学习!

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Redis

“Redis初级适用技巧-NoSQL数据库 (redis初始化数据)” 的相关文章

Redis数据删除后-内存占用为何居高不下 (redis数据类型)

Redis数据删除后-内存占用为何居高不下 (redis数据类型)

作为面试经验丰富的开发人员,肯定会遇到过这样的问题:做了数据删除操作,为什么使用 top 命令时,仍然显示 Redis 占用了大量内存? 答案 这是因为当数据删除后,Re...

一站式-满足您的所有-解决方案-需求-Redis-Redis (一站式满足您的资金需求让您用款无忧)

一站式-满足您的所有-解决方案-需求-Redis-Redis (一站式满足您的资金需求让您用款无忧)

Introduction Redis is an efficient in-memory database designed to store data invarious formats, s...

大厂Redis重试战略剖析-深化摸索行业通常 (大厂redis面试题)

大厂Redis重试战略剖析-深化摸索行业通常 (大厂redis面试题)

受网络和运转环境影响,运行程序或许遇到临时性缺点,如刹时网络颤抖、服务临时无法用、服务忙碌造成超时等。 智能重试机制可大幅防止此类缺点,保证操作成功口头。 1引发临时性缺点的要素...

Redis中分布式锁的防死锁机制 (redis中文网)

Redis中分布式锁的防死锁机制 (redis中文网)

分布式锁在分布式系统中是一种常见的需求。它用于防止对共享资源的并发访问,确保数据一致性和可靠性。在 Redis 中实现分布式锁可以通过使用 SETNX(SET if Not eXists)命令来尝...

排查与处置指南-Redis大Key危害 (排查与处置指的是什么)

排查与处置指南-Redis大Key危害 (排查与处置指的是什么)

这是一位同窗往年秋招参与得物一面遇到的疑问,完整面经如下: 这个疑问在面试中还是比拟容易遇到的,尤其是在调查性能优化相关常识点的时刻。 通常状况下,问了bigkey(大Key)还会继续...

Redis-使用哈希槽而非一致性哈希的原因 (redis淘汰策略有哪些)

Redis-使用哈希槽而非一致性哈希的原因 (redis淘汰策略有哪些)

引言 在分布式系统中,数据分片和负载均衡是至关重要的。哈希槽和一致性哈希两种方法都可以实现这些目标,但它们各有优缺点。本文将讨论为什么在某些情况下使用哈希槽而不是一致性哈希。 哈希槽 哈希...

上古程序猿推戴经常使用Redis的执著理由 (上古教程)

上古程序猿推戴经常使用Redis的执著理由 (上古教程)

最近,在知乎上看到这样一个疑问: 有些上古程序猿不时保持推戴经常使用怎样办? 终究用不用Redis?为什么用?怎样用?让咱们看看网友怎样说…… @灵剑...

成功多规则限流的思索与通常-Redis (成功的规则)

成功多规则限流的思索与通常-Redis (成功的规则)

市面上很多引见如何成功限流的,然而大局部都有一个缺陷,就是只能成功繁多的限流,比如1分钟访问1次或许60分钟访问10次这种,然而假构想一个接口两种规则都须要满足呢,咱们的名目又是散布式名目,应该如何处...