《NOSQL数据库技术》课件第7章-Redis键值数据库.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《NOSQL数据库技术》课件第7章-Redis键值数据库.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOSQL数据库技术 NOSQL 数据库技术 课件 Redis 键值 数据库
- 资源描述:
-
1、目录目录RedisRedis DB DB基础基础1RedisRedis键值管理操作键值管理操作2RedisRedis集群架构及管理集群架构及管理3RedisRedis管理与监控管理与监控4小结小结51RedisRedis官网:官网:httpshttps:/redis.io/:/redis.io/2目录目录 RedisRedis是性能卓越、支持是性能卓越、支持多种数据结构键值多种数据结构键值存储且应用广泛存储且应用广泛的的NoSQLNoSQL数据库系统。数据库系统。本章学习内容本章学习内容思维导思维导图如下图如下nRedisRedis 支持支持unixunix 、linuxlinux、Windo
2、ws Windows等平台安装等平台安装nWindowsWindows版本版本下载下载安装安装httpshttps:/:/ 10.5 键键值类值类RedisRedis DB DB简介简介nWindowsWindows安装安装n执行执行Redis-x64-3.2.100.msiRedis-x64-3.2.100.msin安装路径:安装路径:C C:Program:Program FilesFilesRedisRedisn服务器服务器端运行端运行程序程序redis-server.exeredis-server.exe即可,默认端口即可,默认端口63796379。n客户端运行客户端运行程序程序red
3、isredis-cli-cli连接连接服务器服务器端。端。nRedisRedis Quit Quit 命令可关闭客户端与命令可关闭客户端与R Redisedis服务的连接服务的连接。nLinuxLinux安装安装n从从redis.ioredis.io下载最新版下载最新版redis-X.Y.Z.tar.gzredis-X.Y.Z.tar.gz后解压,然后后解压,然后进入进入redisredis-X.Y.Z-X.Y.Z文件夹后直接文件夹后直接makemake即可;即可;nmakemake成功后会在成功后会在srcsrc文件夹下产生一些二进制可执文件夹下产生一些二进制可执行文件,包括行文件,包括re
4、disredis-server-server、redisredis-cli-cli等;等;7.1.1下载与安装下载与安装 启动启动WindowWindow版本的版本的RedisRedis redisredis-server-server 或者在系统服务列表中启动服务或者在系统服务列表中启动服务 卸载卸载服务:服务:redisredis-Server-service-uninstall-Server-service-uninstall 开启开启服务:服务:redisredis-Server-service-start-Server-service-start 停止停止服务:服务:redisred
5、is-Server-service-stop-Server-service-stop 重命名重命名服务:服务:redisredis-Server-service-name name-Server-service-name name57.1.1下载与安装下载与安装6 启动客户端交互环境启动客户端交互环境 redisredis-cli-cli127.0.0.1:6379127.0.0.1:6379 PINGPINGPONGPONGredis-cli.exeredis-cli.exe也可带如下格式参数:也可带如下格式参数:redis-cli.exe redis-cli.exe-h 127.0.0.1
6、-p 6379-h 127.0.0.1-p 6379-a-a requirepassrequirepass 其中其中-h-h对应服务器地址,对应服务器地址,-p-p对应数据库端口号,对应数据库端口号,-a-a对对应连接数据库的密码,应连接数据库的密码,默认无密码默认无密码,可以在,可以在redis.windows.confredis.windows.conf中配置中配置。可可使用在线测试环境使用在线测试环境http:/try.redis.io/http:/try.redis.io/,该环境下不需要安装,该环境下不需要安装数据库服务,即可在线测试命令的执行效果。数据库服务,即可在线测试命令的执行
7、效果。LinuxLinux环境安装步骤类似环境安装步骤类似后续示例简化后续示例简化为为redisredis 7.1.1下载与安装下载与安装7 RedisRedis管理工具软件,如管理工具软件,如带自动折叠键带自动折叠键schemaschema的的工具工具RedisRedis Desktop Desktop Manager 2019Manager 2019版是收费版,可用版是收费版,可用V0.99V0.99 https https:/ RedisRedis Desktop Desktop ManagerManager添加键选择键类型,输入值修改键值等操作库切换7.1.2 操作命令分类操作命令分类
8、 RedisRedis数据库管理提供了丰富、简洁的操作命令,分类如下数据库管理提供了丰富、简洁的操作命令,分类如下9序号序号命令类型命令类型描述描述1Keys用于管理 redis 的键。如创建、查询、删除等2Strings用于管理字符串结构键值操作3Lists用于管理双向列表类型键值操作4Sets用于管理集合结构键值操作5Hashes用于管理散列结构键值操作6Sorted Sets用于管理有序集合结构键值操作7Pub/Sub 用于发布/订阅键值操作管理相关操作8Streams用于流结构键值操作管理相关操作9Geo用于地理空间相关键值操作10Cluster 用于集群管理相关操作11HyperLo
9、gLog用于做键值数据基数统计的操作命令集12Connection用于数据库链接管理相关操作13Transactions用于事务管理相关操作14Server用于服务器管理操作,如查看当前状态信息等15Scripting使用 Lua 解释器来执行脚本,执行脚本的常用命令7.1.2 操作命令分类操作命令分类 1 1)Geo:Geo:RedisRedis 为为GeoGeo类键值提供了丰富的操作,支持类键值提供了丰富的操作,支持基于地理空间(基于地理空间(geospatialgeospatial)索引半径查询索引半径查询,geoaddgeoadd命令用于添加地理坐标命令用于添加地理坐标;geoposg
10、eopos命令用于查询某个地理坐标命令用于查询某个地理坐标;删除使用删除使用zremzrem,本质上属于有序集合;,本质上属于有序集合;geodistgeodist命令用于查询两地之间的距离,可以指定命令用于查询两地之间的距离,可以指定单位,默认为米;单位,默认为米;geohashgeohash命令用于查询经纬度坐标对应的命令用于查询经纬度坐标对应的geohashgeohash值;值;二维二维经、纬度经、纬度 一维一维5252位的位的geohashgeohash字符串字符串 georadiusgeoradius命令用于返回距离某地一定半径范围内的命令用于返回距离某地一定半径范围内的地理坐标哈希
11、(地理坐标哈希(geohashgeohash)值,可以按距离排序)值,可以按距离排序。107.1.2 操作命令分类操作命令分类 2 2)HyperLogLogHyperLogLog:是用来做基数统计的算法命令:是用来做基数统计的算法命令。基数基数是指集合中不重复元素的个数是指集合中不重复元素的个数。RedisRedis中每个中每个 HyperLogLogHyperLogLog 键只需要花费键只需要花费 12 KB 12 KB 内存,就可以计算接近内存,就可以计算接近2 26464个不同元素的基数。在个不同元素的基数。在输入元素的数量或者体积非常大时,计算基数所输入元素的数量或者体积非常大时,计
12、算基数所需的空间仍然固定并且很小需的空间仍然固定并且很小。注:注:HyperLogLogHyperLogLog只会根据输入元素计算基数,只会根据输入元素计算基数,而不存储输入元素本身,所以而不存储输入元素本身,所以 HyperLogLogHyperLogLog不能不能像集合那样,返回输入的各个元素像集合那样,返回输入的各个元素。相关相关命令:命令:pfaddpfadd、pfcountpfcount、pfmergepfmerge117.1.2 操作命令分类操作命令分类 3 3)ConnectionConnection:命令主要用于管理客户端链接:命令主要用于管理客户端链接,例如例如如何通过密码验
13、证连接到如何通过密码验证连接到 RedisRedis 服务,并检服务,并检测服务是否在测服务是否在运行运行 PINGPING命令可以查看服务是否命令可以查看服务是否运行运行 QUITQUIT命令可以关闭当前命令可以关闭当前连接连接 SELECTSELECT命令可以切换到指定的命令可以切换到指定的数据库数据库 RedisRedis默认开启默认开启1616个数据库实例,个数据库实例,0-150-15 默认链接默认链接0 0号数据库号数据库 如切换到如切换到1010号数据库号数据库127.1.2 操作命令分类操作命令分类 4 4)TransactionsTransactions:RedisRedis
14、的所有单个操作都是原子性的所有单个操作都是原子性的,意思就是要么成功执行,要么失败完全不执的,意思就是要么成功执行,要么失败完全不执行行。多多个原子操作可通过个原子操作可通过MULTIMULTI和和EXECEXEC指令包起指令包起来作为一个整体来作为一个整体执行执行 但但 RedisRedis 没有在事务上增加任何维持原子性的机没有在事务上增加任何维持原子性的机制,所以制,所以RedisRedis事务可以理解为一个打包的批量事务可以理解为一个打包的批量执行脚本执行脚本。中间中间某条指令的失败不会导致前面已成功执行某条指令的失败不会导致前面已成功执行指令的回滚,也不会造成后续的指令不执行指令的回
15、滚,也不会造成后续的指令不执行。相关命令:相关命令:DISCARDDISCARD、WATCHWATCH、UNWATCHUNWATCH137.1.2 操作命令分类操作命令分类 5 5)ServerServer:该类命令该类命令主要用于管理数据库服务主要用于管理数据库服务,如:,如:CLIENT CLIENT KILL KILL 命令可用于关闭客户端命令可用于关闭客户端连接;连接;DBSIZEDBSIZE命令可用于获取当前数据库的命令可用于获取当前数据库的 Key Key 的的数量;数量;INFOINFO命令可用于获取命令可用于获取 RedisRedis 服务器的各种信息和统计服务器的各种信息和统
16、计数数值;值;6 6)ScriptingScripting:该该类类命令命令主要用于执行缓存中的主要用于执行缓存中的LuaLua脚本,脚本,如:如:SCRIPT SCRIPT EXISTSEXISTS用于检查脚本是否在缓存中用于检查脚本是否在缓存中;SCRIPT SCRIPT LOADLOAD可以将脚本添加到脚本缓存可以将脚本添加到脚本缓存中,中,但并不立但并不立即执行这个脚本即执行这个脚本;执行执行脚本的常用命令为脚本的常用命令为 EVALEVAL;SCRIPT SCRIPT KILLKILL可以终止当前正在运行的可以终止当前正在运行的LuaLua 脚本;脚本;147.2 Redis键值管理
17、操作键值管理操作 LuaLua简介简介 是巴西里约热内卢天主教大学是巴西里约热内卢天主教大学19931993年,用年,用C C语言编写的小语言编写的小巧的脚本语言;巧的脚本语言;目的是为了通过嵌入应用程序,为应用程序提供灵活的扩目的是为了通过嵌入应用程序,为应用程序提供灵活的扩展和定制展和定制功能;功能;LuaLua语言体积很小、启动速度快,从而适合嵌入在别的程语言体积很小、启动速度快,从而适合嵌入在别的程序里。序里。5.0.25.0.2版的版的LuaLua的内核小于的内核小于120KB120KB;同时支持面向过程同时支持面向过程(procedure-oriented)(procedure-o
18、riented)编程和函数式编程编程和函数式编程(functional programming(functional programming);RedisRedis命令命令+lualua脚本语言支持复杂的键值数据操作脚本语言支持复杂的键值数据操作 RedisRedis能够保证单条命令的原子性,一个脚本内操作能够保证单条命令的原子性,一个脚本内操作作为整体执行,可以很好弥补事务管理机制的不足作为整体执行,可以很好弥补事务管理机制的不足 语法参考:语法参考:http:/www.lua.org/15目录目录RedisRedis DB DB基础基础1RedisRedis键值管理操作键值管理操作2Red
19、isRedis集群架构及管理集群架构及管理3RedisRedis管理与监控管理与监控4小结小结516RedisRedis官网:官网:httpshttps:/redis.io/:/redis.io/KEY KEY是访问不同值的入口,具有唯一性,是访问不同值的入口,具有唯一性,RedisRedis提供提供了单独了单独对对键操作的命令集。键操作的命令集。匹配匹配:KEYS pattern 例如例如 keys*列出所有列出所有key值值删除:删除:DEL key key.例如例如 del list1 删除链表删除链表1是否存在:是否存在:EXISTS key键键值迁移:值迁移:MOVE key db-
20、移向数据库移向数据库 select 0 1可选择数据库可选择数据库查看数据类型查看数据类型:TYPE key 设置设置超时超时:EXPIRE key seconds/EXPIREAT key timestamp 取消取消超时:超时:PERSIST key RedisRedis在设计之初就被定义为长时间不间断运行的服务进程,在设计之初就被定义为长时间不间断运行的服务进程,因此大多数系统配置因此大多数系统配置参数参数修改及命令执行后修改及命令执行后都都可以在不重新启可以在不重新启动进程的情况下立即生效动进程的情况下立即生效,以下命令操作需慎之又慎:,以下命令操作需慎之又慎:flushall 清空所
21、有清空所有keys;flushdb 清空当前数据库清空当前数据库key;7.2.1 Key操作操作7.2.1 Key操作操作nRedisRedis常用常用KeyKey操作命令操作命令序号序号命令格式命令格式描述描述1del key该命令用于在该命令用于在 key 存在时删除存在时删除 key2keys pattern查找所有符合给定查找所有符合给定模式的模式的 key列表列表3exists key检查给定检查给定 key 是否存在,是否存在,存在为存在为1,不存在为,不存在为04expire keyseconds为给定为给定 key 设置过期时间,以秒计设置过期时间,以秒计5expireat
22、key timestampEXPIREAT 的作用和的作用和 EXPIRE 类似,都用于为类似,都用于为 key 设置过期时间不同之处在于设置过期时间不同之处在于 EXPIREAT 命令命令接受的时间参数是接受的时间参数是 UNIX 时间戳时间戳(UNIX Timestamp)6pexpire key milliseconds设置设置 key 的过期时间,以毫秒计的过期时间,以毫秒计7pexpireat key milliseconds-timestamp设置设置 key 过期时间的时间戳过期时间的时间戳(unix timestamp)以毫以毫秒计秒计7.2.1 Key操作操作nRedisRe
23、dis常用常用KeyKey操作命令操作命令序号序号命令格式命令格式描述描述8move key db将当前数据库的将当前数据库的 key 移动到给定的数据库移动到给定的数据库 db 当中当中9persist key移除移除 key 的过期时间,的过期时间,key 将持久保持将持久保持10pttl key以毫秒为单位返回以毫秒为单位返回 key剩余的过期时间剩余的过期时间11ttl key以秒为单位,返回给定以秒为单位,返回给定 key 的剩余生存时间的剩余生存时间(Time To Live,TTL)12randomkey从当前数据库中随机返回一个从当前数据库中随机返回一个 key。13renam
24、e key newkey修改修改 key 的名称为的名称为newkey。14renamenx key newkey仅当仅当 newkey 不存在时,将不存在时,将 key 改名为改名为 newkey15type key返回返回 key 所储存的值的类型所储存的值的类型7.2.1 Key操作操作1)1)添加添加一个键。一个键。redisredisset set pnumpnum 200 200 OKOK2)2)查询查询当前所有键。当前所有键。redisredis keys keys*3)3)获取获取指定指定keykey的数据结构类型的数据结构类型,返回值为字符串格式,若不存在则返回,返回值为字符
25、串格式,若不存在则返回nonenone。redisredistype type pnumpnum string string4)4)设置设置键的过期时间,单位为秒,返回键的过期时间,单位为秒,返回1 1表示设置成功。表示设置成功。redisredisexpire expire pnumpnum 5 5 1 15)5)获取获取指定指定keykey的过期时间,的过期时间,-1-1为没有设置过期时间,为没有设置过期时间,-2-2为已经超时不存在。为已经超时不存在。redisredis ttlttl pnumpnum -2 2 20 String String是最常用的一种是最常用的一种数据数据结构结
展开阅读全文