数据库:Redis数据库

目录

一、数据库类型

1、关系型数据库

2、非关系型数据库

3、关系型非关系型区别

二、Redis数据库

1、什么是Redis

3、Redis特点

4、Redis为什么读写快

5、部署Redis数据库

6、redis管理

7、Redis数据库五大类型

8、Redis数据库基础使用

9、redis五大类型增删查 


一、数据库类型

1、关系型数据库

关系型数据库:是一个机构号的数据库,创建在关系模型基础上,是一个二维表,表中字段记录有关联,先建库再建表

2、非关系型数据库

非关系型数据库:NoSQL(NoSQL = Not Only SQL ),意思是“不仅仅是 SQL”,是非关系型数据库的总称。除主流关系型数据库都是非关系型数据库,Redis、Hbase、大部分用在缓存中

3、关系型非关系型区别

非关系数据库:数据保存在缓存中,利于读取速度/查询数据、架构中位置灵活、分布式、扩展性高

关系数据库:安全性高(持久化)、事务处理能力强、任务控制能力强、做日志备份、恢复、容灾的能力更强一点。

二、Redis数据库

1、什么是Redis

Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库即非关系数据库。

Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程。若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程。

Redis 6.0 中新增加的多线程也只是针对处理网络请求过程采用了多线性,而数据的读写命令,仍然是单线程处理的。

2、Redis命中机制和淘汰机制

命中机制:查询数据可以查询到,例如查询100条可以查询到20条即命中20条

淘汰机制:Redis缓存的是高热数据,若负载高于限制则淘汰一些最近没有访问的数据,即删除

3、Redis特点

①读写速度快,读最高可达110000次/s  写最高81000次/s。

②支持丰富的数据类型,key-value 、 strings、 lists等。

③持久化,可以将内存中的数据保存在磁盘中,重启时再次加载进内存进行使用,定期快照,日志记录方式保存(类似增量备份)。

④原子性:redis 所有操作都是原子性的。

⑤支持数据备份:即 master-salve 模式的数据备份。

4、Redis为什么读写快

①、redis是一款纯内存结构工作在内存中,避免了磁盘I/O等操作耗时操作

②、redis命令处理的核心模块是单线程,减少了锁竞争,以及频繁创建线程和销毁线程的代价,减少了线程上下文切换的消耗

③、采用I/O多路复用技术,大大提高并发效率

5、部署Redis数据库

yum install -y   gcc  gcc-c++ make 
#安装工具
cd /opt 
#进入opt目录将软件包上传
tar  zxvf  redis-5.0.7.tar
#解压安装包
cd /opt/redis-5.0.7
#进入解压的文件夹中
make 
#将源代码转换成二进制
 make install prefix=/usr/local/redis
#安装进硬盘,永久保存在硬盘上 指定安装目录到/usr/local/redis
cd /opt/redis-5.0.7/utils 
#进入到安装目录执行安装脚步
./install_server.sh
#执行安装脚步
Please select the redis port for this instance: [6379]
#第一个是询问设置redis端口不设置直接回车则默认是6379
Please select the redis config file name [/etc/redis/6379.conf]
#第二个询问设置redis主配置文件路径,不设置直接回车则是/etc/redis/6379.conf此文件
Please select the redis log file name [/var/log/redis_6379.log]
#第三个询问设置redis日志文件位置,不设置直接回车是/var/log/redis_6379.log文件
Please select the data directory for this instance [/var/lib/redis/6379]
#第四个询问设置管理redis的RDB文件保存路径不设置直接回车是/var/log/redis_6379.log文件
Please select the redis executable path [/usr/local/bin/redis-server]
#第五个设置redis执行文件路径redis-cli等若设置则直接填写,比如设置为/usr/local/redis/bin/redis-server。
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
#询问是否配置完成确认安装,回车表示配置完成确认安装,Ctrl-C终止安装
netstat  -antp |grep redis
#安装完成后redis是自动启动的。查询是否有redis进程有则安装成功
ln -s /usr/local/redis/bin/* /usr/local/bin/
#把redis的可执行程序文件放入路径环境变量的目录中便于系统识别即可以在任何位置使用此文件内命令

6、redis管理

①redis-server:用于启动redis的工具

②redis-check-rdb:修复rdb持久化文件

③redis-check-aof:修复aof持久化文件

④redis-benchmark:用于检测redis在本机的运行效率

redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。
基本的测试语法:redis-benchmark [选项] [选项值]。
-h :指定服务器主机名。
-p :指定服务器端口。
-s :指定服务器 socket
-c :指定并发连接数。 
-n :指定请求数。
-d :以字节的形式指定 SET/GET 值的数据大小。
-k :1=keep alive 0=reconnect 。
-r :SET/GET/INCR 使用随机 key, SADD 使用随机值。
-P :通过管道传输<numreq>请求。
-q :强制退出 redis。仅显示 query/sec 值。
--csv :以 CSV 格式输出。
-l :生成循环,永久执行测试。
-t :仅运行以逗号分隔的测试命令列表。
-I :Idle 模式。仅打开 N 个 idle 连接并等待。

#向 IP 地址为 192.168.10.23、端口为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能
redis-benchmark -h 192.168.10.23 -p 6379 -c 100 -n 100000

#测试存取大小为 100 字节的数据包的性能
redis-benchmark -h 192.168.10.161 -p 6379 -q -d 100

#测试本机上 Redis 服务在进行 set 与 lpush 操作时的性能
redis-benchmark -t set,lpush -n 100000 -q

7、Redis数据库五大类型

String:String是 redis 最基本的类型,最大能存储 512MB 的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等。默认是此数据类型

List:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素

Hash(散列类型):hash用于存储对象。可以采用这样的命名方式(hash格式):对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。

set:无序集合,元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算

sorted set:a、有序集合,元素类型为Sting,元素具有唯一性, 不能重复。b、每个元素都会关联–个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同。

8、Redis数据库基础使用

redis-cli
#方法1登录redis数据库
redis-cli -h 主机 -p 6379
#方法2登录redis数据库
#进入redis数据库后默认进入的是 0库,默认redis有16个库,序号是0-15。
select 库序号[0-15]
#切换redis库范围是0-15
move   键名   库序号[0-15]
#将数据迁移到其他库,例如 move   ky26   2;将ky26键移动到2库中
set  键名   键内容
#设置键内容
get   键名
#查看键内容
keys 
#命令查看库中内容,通常结合*和?等选项使用
keys * 
#显示本库中所有键
dbsize
#统计本库中所有键的和输出
keys a* 
#显示本库中所有以a开头的键
keys a? 
#显示本库中以a开头后面只有1个任意字符的键
exists 键名 
#判断键在本库中是否存在,存在则返回1不存在则返回0
del   键名   
#删除本库中的此键
rename  原键名  新键名 
#修改原键名为新间名,若新建名中有内容则直接覆盖不提示
renamenx 原键名  新键名
#修改原键名为新键名若新键名存在则此命令执行不成功返回0,不存在更改成功 
type 键名 
#查看此键是什么类型
flushdb
#删除此库中的所有内容
flushall
#删除redis中所有库的内容

9、redis五大类型增删查 

reids数据类型删除
stringsetgetdel
listlpushlrangedel
hashhsethgetdel
setsaddsmembersdel
sorted setzaddzrankdel
String:
set  test 123
#设置string类型的test键值为123
get  test
#查看string类型的test键的值
del test
#删除string类型的test键
List:
lpush  test  0 1 2 3 
#创建list类型的test键值为0 1 2 3 0为第一个元素 1为第二个元素以此类推
lrange  test  1 1 
#查看test键的第一个元素的值
lrange  test  1 2 
#查看test键的第一个元素到第二个元素的值
del  test
#删除list类型的test键
Set:
无序集合,元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5316.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库管理-第六十三期 烦(20230327)

数据库管理 2023-03-27第六十三期 烦1 跨版本PDB迁移补遗2 BUGs3 就低不就高总结第六十三期 烦 上个周末呢&#xff0c;因为一些客户的事情整的一个周末都在干活&#xff0c;其中两天还搞到的晚上12点&#xff0c;几乎没咋休息&#xff0c;现在感觉贼累&#xff0c;继续写文章…

为什么我们认为GPT是一个技术爆炸

从23年初&#xff0c;ChatGPT火遍全球&#xff0c;通过其高拟人化的回答模式&#xff0c;大幅提升了人机对话的体验和效率&#xff0c;让用户拥有了一个拥有海量知识的虚拟助手&#xff0c;根据UBS发布的研究报告显示&#xff0c;ChatGPT在1月份的月活跃用户数已达1亿&#xff…

Java实习生------Redis哨兵机制详解⭐⭐⭐

“无数的我们被世界碾压成一缩黑团&#xff0c;无数的我们试图与世界抗争到底”&#x1f339; 参考资料&#xff1a;图解redis 目录 什么是哨兵机制&#xff1f; 哨兵机制主要干了哪三件事&#xff1f; 哨兵监控主节点的过程是怎样的&#xff1f; 判断主节点故障之后&…

Servlet---服务端小应用程序(服务器端的小组件)

零.前置知识 1.tomcat—服务器容器 tomcat就是一个服务器容器&#xff0c;通常说的将项目部署到服务器&#xff0c;就是将项目部署到tomcat中&#xff08;将项目放到tomcat容器中&#xff09;。 浏览器向服务器发送一个HTTP请求&#xff0c;请求访问demo09.html页面&#xf…

【Linux】进程相关笔记

文章目录查看进程方式批量化注释fork进程状态R状态S状态D状态T状态t状态退出码问题X&&Z状态僵尸进程的危害makefile 新知识孤儿进程查看进程方式 ls /proc ls /proc/13045 (可以查看到之情进程的属性) ps axj | head -1 && ps ajx | grep myprocess(文件名) |…

垃圾回收之CMS、G1、ZGC对比

ZGC&#xff08;The Z Garbage Collector&#xff09;是JDK 11中推出的一款低延迟垃圾回收器&#xff0c;它的设计目标包括&#xff1a; 停顿时间不超过10ms&#xff1b;停顿时间不会随着堆的大小&#xff0c;或者活跃对象的大小而增加&#xff1b;支持8MB~4TB级别的堆&#x…

【C++】string类的模拟实现

目录 一、前言 二、模拟实现 1、构造函数 2、拷贝构造函数 3、operator 4、operator[] 5、迭代器 6、string类的比较 7、string类的扩容 7.1、reserve 7.2、resize 8、string类的尾插 8.1、push_back 与 append 8.2、operator 9、string类的insert 9.1、插入字符…

deepin15.11无法正常输入汉字问题的解决

1,起因 本来是sougou输入法 但是由于自己突发奇想 在那瞎折腾 一不小心把配置给弄坏了 就再也回不到之前可以正常打印汉字的状态 历经两个小时的折腾 总算是又能输入汉字啦 耗费两个多小时 对当下的我来说时间成本着实有点高 但是把问题给解决了 总算还是有点收获 平时的学习过…

注意力机制 | CNN-BiLSTM-Attention基于卷积-双向长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序)

注意力机制 | CNN-BiLSTM-Attention基于卷积-双向长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序) 目录 注意力机制 | CNN-BiLSTM-Attention基于卷积-双向长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序)预测结果评价指标基本介绍程序设计参…

qt 编译器 调试器

电脑版本&#xff1a;win10 64位 qt版本&#xff1a;based on Qt 5.14.0&#xff08;msvc 2017&#xff0c; 32位&#xff09; Qt Creator 4.11.0 qt安装包&#xff1a;qt-opensource-windows-x86-5.9.9.exe 安装过程一路next&#xff0c;安装完成后&#xff0c;默认使用的…

Spring IoC循环依赖问题

什么是循环依赖 循环依赖其实就是循环引⽤&#xff0c;也就是两个或者两个以上的 Bean 互相持有对⽅&#xff0c;最终形成闭环。⽐如A依赖于B&#xff0c;B依赖于C&#xff0c;C⼜依赖于A。 注意&#xff0c;这⾥不是函数的循环调⽤&#xff0c;是对象的相互依赖关系。循环调…

一个服务端同学的Vue框架入门及实践

做为服务端同学&#xff0c;接触前端代码较少&#xff0c;刚毕业的时候用过 jQuery Bootstrap2/3&#xff0c;当时的感觉就是&#xff0c;容易上手&#xff0c;学习门槛相对较低&#xff0c;另外就是有一个非常成熟的 jQuery 插件库&#xff0c;在这里&#xff0c;几乎可以找到…

vue集成tui.calendar日历组件

vue集成tui.calendar日历组件前言一、简介、效果图二、vue简单集成(集成js版本,没有使用官方的vue2版本)1.引包2.简单示例三、自定义功能1.需求分析、效果展示2.实现思路前言 vue2的集成在git上官方已经给出了demo这里就不贴代码了。本次主要是vue3集成 最近有个功能需要一个日…

重发布实验

基础配置&#xff1a; [r1]int l0 [r1-LoopBack0]ip add 1.1.1.1 24 [r1-LoopBack0]int g0/0/0 [r1-GigabitEthernet0/0/0]ip ad 192.168.12.1 24 [r1-GigabitEthernet0/0/0]int g0/0/1 [r1-GigabitEthernet0/0/1]ip add 192.168.123.1 24 [r1]ospf 1 router-id 1.1.1.1 [r1-o…

自学大数据第12天~Hbase

先留个问题~ERROR: KeeperErrorCode ConnectionLoss for /hbase/master 稍后解决 找到了问题的根因: 查看报错日志 事关tmp文件夹的配置,所以去找一下hbase配置文件中关于这个文件夹的配置项 我的策略是将这个配置项注销掉 然后启动hbase ,之后hmaster就成功启动了; 接着s…

熟练Redis之无处不在的锁

为了保证并发访问的正确性&#xff0c;Redis提供了两种方法,分别是加锁和原子操作 Redis加锁两个问题:一个是&#xff0c;如果加锁操作多&#xff0c;会降低系统的并发访问性能;第二个是&#xff0c;Redis客户端要加锁时&#xff0c;需要用到分布式锁&#xff0c;而分布式锁实…

Coremail奇安信发布2022中国企业邮箱安全性研究:应对ChatGPT带来的安全挑战

日前&#xff0c;广东盈世科技计算机有限公司与奇安信集团联合编写发布《2022中国企业邮箱安全性研究报告》。 报告数据显示&#xff1a;2022年&#xff0c;全国企业邮箱用户共收到各类钓鱼邮件约425.9亿封&#xff0c;相比2021年收到各类钓鱼邮件的342.2亿封增加了24.5%。 一…

华为OD机试用java实现 -【RSA 加密算法】

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:RSA 加密算法 题目 RSA 加密…

【愚人节专场】Java实现定时发送小情话

首先&#xff0c;感谢大佬的帮助~附上大佬的博客以示尊敬https://blog.csdn.net/qq_38591577/article/details/128164308?spm1001.2014.3001.5502 功能实现&#xff1a; 在名为愚人节&#xff0c;实为告白/情人节的日子里&#xff0c;怎么样才能引起TA的关注呢&#xff1f;不…

49天精通Java,第21天,Java内部类,看看文心一言、ChatGPT怎么说

目录文心一言谈Java内部类ChatGPT谈Java内部类下面来聊聊哪吒的见解。一、为什么需要内部类&#xff1f;二、内部类分为四种三、成员内部类1、什么是成员内部类2、代码实例3、成员内部类进阶代码实例4、控制台显示5、外部类访问内部类四、局部内部类五、匿名内部类1、匿名内部类…