从零开始学习Redis
文章平均质量分 67
从零开始学习Redis,记录了一些学习的基本知识点,有需要的朋友可以一起学习下
luyaran
像永远快乐的阳光,追求那至高无上的完美乐园。
展开
-
Redis面试相关内容了解下~(五)
原文地址:Redis面试相关内容了解下~(五)1、Redis适用场景? 会话存储(sessioncache):用Redis缓存会话比其它存储(memcache)的优势在于Redis提供持久化操作。 全页缓存(FPC)。 队列。 排行榜/计数器。 发布/订阅:建立聊天系统。 2、如何在1亿个key中获取到其中10万以已知前缀开头的key?可使用keys指令扫出指定模式的key列表,如Redis正在线上提供服务,则使用scan指令,但会产生重复率,可在.原创 2021-11-25 09:24:08 · 119 阅读 · 0 评论 -
Redis面试相关内容了解下~(三)
原文地址:Redis面试相关内容了解下~(三)1、Redis哈希槽的概念?Redis集群未使用一致性hash,引入了哈希槽的概念,Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置在那个槽,集群每个节点负责一部分hash槽。2、Redis集群的主从复制模型是怎样的?为使部分节点失败或大部分节点无法通信时,集群仍可用,所以集群使用了主从复制模型,各节点都有N-1个复制品。3、Redis集群写操作会丢失?Redis并不能保证数据的强一致性,在特定原创 2021-11-23 09:03:49 · 104 阅读 · 0 评论 -
Redis面试相关内容了解下~(二)
原文地址:Redis面试相关内容了解下~(二)1、Redis过期键的删除策略? 定时删除:在设置键的过期时间的同时创建一个定时器,让定时器在键的过期时间来临时执行对键的删除操作。 惰性删除:放任键过期不管,但每次从键空间取值时,都检查取得的键值是否过期,如已过期,就删除,反之则返回该键值。 定期删除:每隔一段时间,程序就对数据库进行一次检查,删除里面过期键,至于要删除多少,就是由算法决定了。 2、Redis的回收/淘汰策略? volatile-lru:从已设置过期时间原创 2021-11-22 09:04:12 · 238 阅读 · 0 评论 -
Redis面试相关内容了解下~(一)
原文地址:Redis面试相关内容了解下~(一)1、什么是Redis?Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。与其它key-value缓存产品相比较,Redis有以下三大特点: Redis支持数据持久化,可将内存中的数据保存在磁盘,重启服务时可再次加载进行使用。 Redis不仅支持key-value类型的数据,还支持list、set、zset、hash等数据结构的存储。 Redis支持数据备份,也就是master-salve模式原创 2021-11-21 14:54:06 · 646 阅读 · 0 评论 -
从零开始学习Redis之Ubuntu下安装Redis
在 Ubuntu 系统安装 Redis 可以使用以下命令:$sudo apt-get install redis-server 然后我们来启动它:$ redis-server 出现如下界面算是启动成功: 然后我们重新打开一个远程putty,运行如下命令:$ redis-cli 完事出现如下界面: 127.0.0.1 是本机 IP ,6379 是 redis 服...原创 2018-06-15 09:39:46 · 331 阅读 · 0 评论 -
从零开始学习Redis之Redis配置问题&守护进程介绍
Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。我们可以通过 CONFIG 命令查看或设置配置项。Redis CONFIG 命令格式如下:redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME 来看个简单的例子:redis 127.0.0.1:6379> CONFIG GET logle...原创 2018-06-15 09:46:53 · 930 阅读 · 0 评论 -
从零开始学习Redis之数据类型详解&应用场景
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。我们接下来就来看下具体的信息。 首先是string(字符串)。string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的strin...原创 2018-06-15 09:59:41 · 268 阅读 · 0 评论 -
从零开始学习Redis之redis命令测试
Redis 命令用于在 redis 服务上执行操作。要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。Redis 客户端的基本语法如下:$ redis-cli 以下实例讲解了如何启动 redis 客户端,启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务:$r...原创 2018-06-15 10:16:11 · 367 阅读 · 0 评论 -
从零开始学习Redis之键(key)命令测试
Redis 键命令用于管理 redis 的键。Redis 键命令的基本语法如下:redis 127.0.0.1:6379> COMMAND KEY_NAME 来看个简单的例子:redis 127.0.0.1:6379> SET lyrkey redisOKredis 127.0.0.1:6379> DEL lyrkey(integer) 1 在以上实例中...原创 2018-06-15 10:23:04 · 359 阅读 · 0 评论 -
从零开始学习Redis之字符串数据类型的相关命令测试
Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:redis 127.0.0.1:6379> COMMAND KEY_NAME 来看个简单的例子:redis 127.0.0.1:6379> SET keys redisOKredis 127.0.0.1:6379> GET keys"redis" 在以上实例中我们使用了 S...原创 2018-06-15 10:25:42 · 210 阅读 · 0 评论 -
从零开始学习Redis之哈希(Hash)数据类型的相关命令测试
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。来看个简单的例子:127.0.0.1:6379> HMSET keys name "redis tutorial" description "redis basic commands for cach...原创 2018-06-15 10:28:21 · 207 阅读 · 0 评论 -
从零开始学习Redis之列表(List)数据类型的相关命令测试
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。来看个简单的例子:redis 127.0.0.1:6379> LPUSH keys redis(integer) 1redis 127.0.0.1:6379> LPUS...原创 2018-06-15 10:30:56 · 229 阅读 · 0 评论 -
从零开始学习Redis之集合(Set)数据类型的相关命令测试
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。来看个简单的例子:redis 127.0.0.1:6379> SADD keys redis(...原创 2018-06-15 10:33:51 · 259 阅读 · 0 评论 -
从零开始学习Redis之有序集合(sorted set)数据类型的相关命令测试
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存...原创 2018-06-15 10:37:19 · 232 阅读 · 1 评论 -
从零开始学习Redis之HyperLogLog的相关命令测试
Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元...原创 2018-06-19 09:44:14 · 267 阅读 · 0 评论 -
从零开始学习Redis之发布订阅的相关命令测试
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它...原创 2018-06-19 09:47:09 · 1031 阅读 · 0 评论 -
从零开始学习Redis之事务的相关命令测试
Redis 事务可以一次执行多个命令, 并且带有以下三个个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。 一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。 以下是一个事务的例子, 它先以 MU...原创 2018-06-19 09:50:13 · 304 阅读 · 0 评论 -
从零开始学习Redis之脚本的相关命令测试
Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。Eval 命令的基本语法如下:redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...] 以下实例演示了 redis 脚本工作过程:redis 127.0.0.1:6...原创 2018-06-19 09:52:08 · 294 阅读 · 0 评论 -
从零开始学习Redis之连接 redis 服务的相关命令测试
Redis 连接命令主要是用于连接 redis 服务。以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行:redis 127.0.0.1:6379> AUTH "password"OKredis 127.0.0.1:6379> PINGPONG 下表列出了 redis 连接的基本命令:序号命令及描述1AUTH password 验证密...原创 2018-06-19 09:54:02 · 782 阅读 · 0 评论 -
从零开始学习Redis之服务器的相关命令测试
Redis 服务器命令主要是用于管理 redis 服务。以下实例演示了如何获取 redis 服务器的统计信息:redis 127.0.0.1:6379> INFO# Serverredis_version:2.8.13redis_git_sha1:00000000redis_git_dirty:0redis_build_id:c2238b38b1edb0e2redis_...原创 2018-06-19 09:55:46 · 323 阅读 · 0 评论 -
从零开始学习Redis之数据备份与恢复的相关命令测试
Redis SAVE 命令用于创建当前数据库的备份。redis Save 命令基本语法如下:redis 127.0.0.1:6379> SAVE 实例如下:redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文件。 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装...原创 2018-06-19 09:58:04 · 372 阅读 · 0 评论 -
从零开始学习Redis之安全的相关命令测试
我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。咱们来通过以下命令查看是否设置了密码验证:127.0.0.1:6379> CONFIG get requirepass1) "requirepass"2) "" 默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验...原创 2018-06-19 13:55:12 · 212 阅读 · 0 评论 -
从零开始学习Redis之性能测试的相关命令测试
Redis 性能测试是通过同时执行多个命令实现的。redis 性能测试的基本命令如下:redis-benchmark [option] [option value] 以下实例同时执行 10000 个请求来检测性能:$ redis-benchmark -n 10000 -qPING_INLINE: 141043.72 requests per secondPING_BULK: ...原创 2018-06-19 13:57:12 · 828 阅读 · 2 评论 -
从零开始学习Redis之客户端连接的相关命令测试
Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法然后创建一个可读的文件事件用于监听这个客户端...原创 2018-06-19 13:59:08 · 292 阅读 · 0 评论 -
从零开始学习Redis之管道技术
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。 Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。首先我们来查看 redis 管道,只...原创 2018-06-20 10:20:02 · 433 阅读 · 0 评论 -
从零开始学习Redis之分区测试
分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。它的优势如下:通过利用多台计算机内存的和值,允许我们构造更大的数据库。通过多核和多台计算机,允许我们扩展计算能力;通过多台计算机和网络适配器,允许我们扩展网络带宽。 redis的一些特性在分区方面表现的不是很好:涉及多个key的操作通常是不被支持的。举例来说,当两个set映射到不同的redis实例上时,...原创 2018-06-20 10:24:20 · 247 阅读 · 0 评论 -
从零开始学习Redis之PHP使用Redis&各种操作实例
开始在 PHP 中使用 Redis 前,我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP。其中安装PHP redis 驱动的步骤我就不赘述了,因为安装方式多种多样,最终在查看phpinfo的时候有如下样式,就算安装成功了: 我们直接来看PHP连接Redis的具体实例:<?php //连接本地的 Redis 服务 ...原创 2018-06-20 10:34:34 · 2005 阅读 · 0 评论