redis七大特性简介

上传人:博****1 文档编号:487453228 上传时间:2023-09-15 格式:DOCX 页数:12 大小:22.12KB
返回 下载 相关 举报
redis七大特性简介_第1页
第1页 / 共12页
redis七大特性简介_第2页
第2页 / 共12页
redis七大特性简介_第3页
第3页 / 共12页
redis七大特性简介_第4页
第4页 / 共12页
redis七大特性简介_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《redis七大特性简介》由会员分享,可在线阅读,更多相关《redis七大特性简介(12页珍藏版)》请在金锄头文库上搜索。

1、redis 七大特性简介Redis 是一个开源的、高级的键值对存储系统,经常被用作数据结构服务器, 因为其支持字符串、Hash、列表、集合和有序集合等数据结构。在LaraveI中 使用 Redis 之前,需要通过 Composer 安装 predis/predis 包: composer require predis/predis配置应用的 Redis 配置位于配置文件 config/database.php 。在这个文件中,可以 看到包含被应用使用的 Redis 服务器的 redis 数组:redis = cIuster = faIse,defauIt = host = 127.0.0.1,

2、port =6379,database = 0, 默认服务器配置可以满足开发需要,不过,你可以基于自己的环境修改该数 组。配置文件中定义的每个 Redis 服务器需要一个名字并指定该 Redis 服务器 使用的主机和接口。cIuster 选项告知 LaraveI Redis 客户端在多个 Redis 节点间执行客户端分片, 从而形成节点池并创建大量有效的RAM。然而,客户端分片并不处理故障转 移,所以,非常适合从另一个主数据存储那里获取有效的缓存数据。此外,你可以在 Redis 连接定义中定义 options 数组值,从而允许你指定一系 列 Predis 客户端选项。如果 Redis 服务器要

3、求认证信息,你可以通过添加 password 配置项到 Redis 服务器配置数组来提供密码。注意:如果你通过 PECL 安装 PHP 的 Redis 扩展,需要在 config/app.php 文 件中修改 Redis 的别名。一、 Redis 七种特性Redis 的几种使用方式 Strings、 Hashs、 Lists、 Sets、 SortedSets、Pub/Sub、 Transactions 也比作七种武器,为大家讲解 Redis 的七种特性,并 列举其适合的应用场景。.Strings (字符串)Redis字符串是一个字节序列。在Redis中字符串是二进制安全的,这意味着 它们没有

4、任何特殊终端字符来确定长度,所以可以存储任何长度为 512兆的字 符串。Strings数据结构是简单的key-value类型,value其实不仅是String,也可以 是数字。使用Strings类型,你可以完全实现目前Memcached的功能,并且 效率更高。还可以享受Redis的定时持久化,操作日志及Replication等功 能。除了提供与 Memcached 样的 get、set、incr、decr 等操作外,Redis 还提供了下面一些操作: 获取字符串长度 往字符串 append 内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符串的内容2.

5、Hashs (哈希)Redis哈希是键值对的集合。Redis哈希是字符串字段和字符串值之间的映 射,所以它们用来表示对象。在Memcached中,我们经常将一些结构化的信息打包成hashmap,在客户端 序列化后存储为一个字符串的值,比如用户的昵称、年龄、性别、积分等,这 时候在需要修改其中某一项时,通常需要将所有值取出反序列化后,修改某一 项的值,再序列化存储回去。这样不仅增大了开销,也不适用于一些可能并发 操作的场合(比如两个并发的操作都需要修改积分)。而Redis的Hash结构 可以使你像在数据库中Update 一个属性一样只修改某一项属性值。3. Lists(链表)Redis 列表是简

6、单的字符串列表,通过插入顺序排序。可以添加一个元素到Redis列表的头部或尾部。相信略有数据结构知识的人都应该能理解其结构。使用Lists结构,我们可以 轻松地实现最新消息排行等功能。Lists的另一个应用就是消息队列,可以利用 Lists的PUSH操作,将任务存在Lists中,然后工作线程再用POP操作将任 务取出进行执行。Redis还提供了操作Lists中某一段的api,你可以直接查 询,删除Lists中某一段的元素。4.Sets(集合)Sets就是一个集合,集合的概念就是一堆不重复值的组合。利用Redis提供的 Sets 数据结构,可以存储一些集合性的数据,比如在微博应用中,可以将一个

7、用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis还为 集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共 同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令 选择将结果返回给客户端还是存集到一个新的集合中。4.Sorted Sets(有序集合)和Sets相比,Sorted Sets增加了一个权重参数score,使得集合中的元素能 够按score进行有序排列,比如一个存储全班同学成绩的Sorted Sets,其集合 value可以是同学的学号,而score就可以是其考试得分,这样在数据插入集 合的时候,就已经进行了天然的排序。另外还可以用S

8、orted Sets来做带权重 的队列,比如普通消息的score为1,重要消息的score为2,然后工作线程 可以选择按score的倒序来获取工作任务。让重要的任务优先执行。Redis 的有序集合类似于 Redis 的集合,但是存储的值在集合中具有唯一性。 另外有序集合的每个成员都使用分值(score )的东西,这个分值就是用于将 有序集合排序,从分值最小到最大来排序。在 Redis 有序集合添加,删除和测试成员的存在的时间复杂度为 O( 1)(恒 定时间,无论集合内包含元素的数量)。列表的最大长度为 232 - 1 个元素 ( 4294967295,每个集合的元素超过四十亿)。5. Pub/

9、Sub(Redis 发布订阅)Pub/Sub从字面上理解就是发布(Publish )与订阅(Subscribe ),在Redis 中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进 行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显 的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。Redis订阅和发布实现了通讯系统,发件人(在Redis中的术语称为发布者) 发送邮件,而接收器(订户)接收它们。信息传输的链路称为通道。Redis 个客户端可以订阅任意数量的通道。示例6. Transactions(Redis 事务)谁说NoSQL都不支持事务,虽

10、然Redis的Transactions提供的并不是严格的 ACID的事务(比如一串用EXEC提交执行的命令,在执行中服务器宕机,那 么会有一部分命令执行了,剩下的没执行),但是这个Transactions还是提供 了基本的命令打包执行的功能(在服务器不出问题的情况下,可以保证一连串 的命令是顺序在一起执行的,中间有会有其它客户端命令插进来执行)。Redis还提供了一个Watch功能,你可以对一个key进行Watch,然后再执行 Transactions,在这过程中,如果这个Watched的值进行了修改,那么这个 Transactions 会发现并拒绝执行。Redis事务允许一组命令在单一步骤中

11、执行。事务有两个属性,说明如下: 在一个事务中的所有命令作为单个独立的操作顺序执行。在Redis事务 中的执行过程中而另一客户机发出的请求,这是不可以的; Redis事务是原子的。原子意味着要么所有的命令都执行,要么都不执 行;二、Redis使用示范1. Redis HyperLogLogRedis HyperLogLog 是用来做基数统计的算法, HyperLogLog 的优点是, 在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、 并且是很小的。在Redis里面,每个HyperLogLog键只需要花费12 KB内存,就可以计算接 近2八64个不同元素的基数。这和计算基数时

12、,元素越多耗费内存就越多的集 合形成鲜明对比。但是,因为 HyperLogLog 只会根据输入元素来计算基数, 而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的 各个元素。示例下面的例子说明了 HyperLogLog Redis 的工作原理:redis 127.0.0.1:6379 PFADD tutorials redis1) (integer) 1redis 127.0.0.1:6379 PFADD tutorials mongodb1) (integer) 1redis 127.0.0.1:6379 PFADD tutorials mysql1) (int

13、eger) 1redis 127.0.0.1:6379 PFCOUNT tutorials(integer) 32. Redis 键Redis中的keys命令用于管理redis中的键。Redis keys命令使用的语法如下 所示:语法redis 127.0.0.1:6379 COMMAND KEY_NAME示例redis 127.0.0.1:6379 SET yiibai redisOKredis 127.0.0.1:6379 DEL yiibai(integer) 1在上面的例子中 DEL 是一个命令,而 yiibai 是一个键。如果键被成功删除,则 该命令的输出将是(整数)1,否则这将是(

14、整数)0;3. Redis 脚本Redis脚本是使用Lua解释脚本用来评估(计算)。从Redis 2.6.0版本开始 内置这个解释器。命令 EVAL 用于执行 脚本命令。语法EVAL 命令的基本语法如下:redis 127.0.0.1:6379 EVAL script numkeys key key . arg arg .示例下面的例子说明了 Redis 脚本是如何工作的:redis 127.0.0.1:6379 EVAL return KEYS1,KEYS2,ARGV1,ARGV2 2 key1key2 first second1) key12) key23) first4) second3

15、.Redis 备份Redis 的 SAVE 命令用于创建当前 Redis 数据库的备份。 语法Redis 的 SAVE 命令的基本语法如下所示:127.0.0.1:6379 SAVE 示例以下示例显示了如何在Redis的当前数据库中创建备份。127.0.0.1:6379 SAVE OK 在执行此命令之后,将在 redis 目录中创建一个 dump.rdb 文件。恢复 Redis 数据要恢复redis数据只需要要将Redis的备份文件(dump.rdb )放到Redis的目 录中,并启动服务器。要了解知道 Redis 目录在什么位置,可使用 CONFIG 命令,如下所示:127.0.0.1:6379 CONFIG get dir1) dir2) /user/yiibai/redis-2.8.13/src在上面的命令命令输出为 /user/yiibai/redis-2.8.13/src 就是使用的 Redis 目 录,也就是 Redis 的服务器安装的目录。4. Bgsave创建 Redis 的备份也可以使用备用命令 BGSAVE 。此命令将启动备份过程, 并在后台运行此。示例127.0.0.1:6379

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号