(7.3.1)--7.3键值数据库Redis.pdf
《(7.3.1)--7.3键值数据库Redis.pdf》由会员分享,可在线阅读,更多相关《(7.3.1)--7.3键值数据库Redis.pdf(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、键值数据库DB-Engines Ranking数据来源:https:/db- 缓存主要用来存放那些读写比很高、很少变化的数据。如,商品类目信息、热门词的搜索列表信息、热门商品信息等。应用程序读取数据时,先到缓存中读取,如果读取不到或数据已失效,再访问数据库,并将数据写入缓存。键值数据库(Key Value Database)键值数据库是一类轻量级结合内存处理为主的NoSQL数据库,也是数据存储结构最简单的一类NoSQL数据库。轻量级指的是它的存储数据结构特别简单,数据库系统本身规模也比较小;以内存为主的运行处理,其设计目的是为了更快地实现对大数据的处理。键(Key)值(Value)中国:哈尔滨
2、:太平Binary:太平国际机场中国:北京:首都Binary:首都国际机场中国:上海:虹桥Binary:虹桥国际机场中国:上海:浦东Binary:浦东国际机场键值存储实现 键(Key)键起唯一索引值的作用,确保一个键值结构里数据记录的唯一性,也起信息记录的作用。键值对(Key-Value Pair)键和值的组合就形成了键值对,它们之间的关系是一对一映射的关系。如“中国:上海:浦东”只能指向“浦东国际机场”这个值,而不能指向“虹桥机场”。命名空间(Namespace)命名空间是由键值对所构成的集合。通常由一类键值对数据构成一个集合。键(Key)值(Value)中国:哈尔滨:太平Binary:太平
3、国际机场中国:北京:首都Binary:首都国际机场中国:上海:虹桥Binary:虹桥国际机场中国:上海:浦东Binary:浦东国际机场命名空间(机场)键值存储的优点 简单,快速,高效计算,分布式处理 键值存储的缺点 对值进行多值查找功能很弱 缺少约束,意味着更容易出错 不容易建立复杂关系键值存储特点键(Key)值(Value)中国:哈尔滨:太平Binary:太平国际机场中国:北京:首都Binary:首都国际机场中国:上海:虹桥Binary:虹桥国际机场中国:上海:浦东Binary:%&*键值数据库Redis Remote Dictionary Server(Redis,远程字典服务器)是一个由
4、SalvatoreSanfilippo(一个意大利人)写的key-value存储系统。Redis官网https:/redis.io/https:/ X、Windows四大系列。Redis的特点 Redis通常被称为数据结构服务器,它支持的数据结构包括字符串(String)、列表(List)、散列表(Hash)、集合(Set)、带范围查询的有序集合(Sorted set)等。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis支持master-slave模式的数据备份。Redis的所有操作都是原子性的。Redis主要适用于少量数据存储、高速读写访
5、问的场景。Redis的持久化方式 RDB持久化 可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。RDB 非常适用于灾难恢复(disaster recovery),在恢复大数据集时的速度比 AOF 的恢复速度要快。如果需要尽量避免在服务器故障时丢失数据,那么 RDB 不适合。AOF(append only file)持久化 记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。使用 AOF 持久化可以带来更高的数据安全性,即数据持久性。对于相同的数据集来说,AOF 文件的体积通常要大于 RDB 文件的体积。Redis支持
6、的主要数据类型类型简介特性应用场景String(字符串)二进制安全可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512MHash(字典)键值对集合,即编程语言中的Map类型适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)存储、读取、修改用户属性List(列表)链表(双向链表)增删快,提供了操作某一段元素的API最新消息排行等功能(比如朋友圈的时间线);消息队列Set(集合)哈希表实现,元素不重复且无序添加、删除,查找的复杂度都是O(1);为集合提供了求交集、并集、差集等操作
7、共同好友;利用唯一性,统计访问网站的所有独立ip;好友推荐时,根据tag求交集,大于某个阈值就可以推荐Sorted Set(有序集合)将Set中的元素增加一个权重参数score,元素按score有序排列数据插入集合时,已经进行天然排序排行榜;带权重的消息队列14类命令1、字符串Strings2、列表Lists3、集合Sets4、散列表Hashes5、有序集合Sorted Sets6、发布订阅Pub/Sub7、连接Connection8、Server9、脚本Scripting10、键Keys11、HyperLogLog12、地理空间Geo13、事务Transactions14、集群Cluster
8、Redis命令 14类200余种命令键命令 Redis 键(Key)命令用于管理 Redis 的键。序号命令名称命令功能描述1DEL用于在key存在时删除key。2DUMP序列化给定key,并返回被序列化的值。3EXISTS检查给定key是否存在。4EXPIRE为给定key设置过期时间,以秒计。5EXPIREATEXPIREAT的作用和EXPIRE类似,都用于为key设置过期时间。不同在于EXPIREAT命令接受的时间参数是UNIX时间戳(unix timestamp)。6KEYS查找所有符合给定模式(pattern)的 key。7MIGRATE将key原子性地从当前实例传送到目标实例的指定数
9、据库上,一旦传送成功,key 保证会出现在目标实例上,而当前实例上的 key 会被删除。8MOVE将当前数据库的key移动到给定的数据库db当中。9OBJECT允许从内部察看给定key的Redis对象。10PERSIST移除key的过期时间,key将持久保持。键命令序号命令名称命令功能描述11PEXPIRE设置 key 的过期时间以毫秒计。12PEXPIREAT设置 key 过期时间的时间戳(unix timestamp)以毫秒计13PTTL以毫秒为单位返回 key 的剩余的过期时间。14RANDOMKEY从当前数据库中随机返回一个 key。15RENAME修改 key 的名称16RENAME
10、NX仅当 newkey 不存在时,将 key 改名为 newkey。17RESTORE反序列化给定的序列化值,并将它和给定的 key 关联。18SORT返回或保存给定列表、集合、有序集合 key 中经过排序的元素。19TTL以秒为单位,返回给定 key 的剩余生存时间(TTL,time to live)。20TYPE返回 key 所储存的值的类型。21SCAN迭代数据库中的数据库键。键命令示例 语法DEL key key.参数说明 key 指定需要删除的字符串键,允许一次删除多个。命令功能 删除指定键的值(任意类型)。返回值 被删除字符串的个数。序号命令名称命令功能描述1Set为指定的一个键设
11、置对应的值(任意类型);若已经存在值,则直接覆盖原来的值。2SetNX在指定的 key 不存在时,为 key 设置指定的值。3SetEX为指定的 key 设置值及其过期时间。如果 key 已经存在,SETEX 命令将会替换旧的值。4PSetEX以毫秒为单位设置 key 的生存时间。5MSet对多个键设置对应的值(任意类型);若已经存在值,则直接覆盖原来的值。该命令是原子操作,操作过程是排它锁隔离的。6MSetNX对多个键设置对应的值(任意类型);该命令不允许指定的任何一个键已经在内存中建立,如果有一个键已经建立,则该命令执行失败。它是原子操作,所执行的命令内容要么都成功,要么都不执行。它适合用
12、于通过设置不同的键来表示一个唯一的对象的不同字段。7Get得到指定一个键的字符串值;如果键不存在,则返回nil值;如果值不是字符串,就返回错误信息,因为该命令只能处理String类型的值。8MGet得到所有指定键的字符串值,与Get的区别是可以同时指定多个键,并可以同时获取多个字符串的值。9StrLen获取指定键的值为字符串的长度。如果值为非字符串,返回错误信息。字符串命令 基本字符串操作命令(设置、获取、删除、取长度)字符串命令示例 语法Set key value EX seconds PX milliseconds NX|XX 参数说明 key value 必选项,填写字符串键和值,键和值
13、中间空一格;EX seconds 设置指定的到期时间,以秒为单位;PX milliseconds 设置指定的到期时间,以毫秒为单位;NX 如果指定的键不存在,仅建立键名;XX 只有指定的键存在时,才能设置对应的值。命令功能 为指定的一个键设置对应的值(任意类型);若已经存在值,则直接覆盖原来的值。返回值 命令执行正常,返回OK;如果命令加了NX或XX参数,但是命令未执行成功,则返回Nil。序号命令名称命令功能描述14Decr对整数做原子减1操作15DecrBy对整数做原子减指定数操作16Incr对整数做原子加1操作17IncrBy对整数做原子加指定数操作18IncrByFloat对浮点数做原子
14、加指定数操作字符串命令 修改数字值操作命令字符串命令示例 语法DecrBy key decrement 参数说明 Key为指定需要做减数操作的字符串的键,decrement为需要减少的整数量。命令功能 将 key 所储存的值减去指定的减量值。返回值 减去指定减量值之后,key的值。如果key不存在,那么key的值会先被初始化为0,然后再执行DecrBy操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。位图命令 Redis的位图就是通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。一个bit的值,或者是0,或者是1;也就是说一个bit能存储的最多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 7.3 键值 数据库 Redis
限制150内