Redis
冷月醉雪
这个作者很懒,什么都没留下…
展开
-
Redis 简介
Redis(Remote Dictionary Server)是完全开源免费的,遵循BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:·Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。·Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,ha...原创 2018-01-11 11:28:01 · 247 阅读 · 0 评论 -
Redis 脚本
Redis脚本使用Lua解释器来执行脚本。Redis 2.6版本通过内嵌支持Lua环境。执行脚本常用的命令为EVAL。语法 redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]127.0.0.1:6379> EVAL script numkeys key [key ...] arg [a...原创 2018-01-15 18:23:33 · 200 阅读 · 0 评论 -
Redis HyperLogLog
Redis在2.8.9版本中添加了HyperLogLog结构。Redis HyperLogLog是用来做基数统计的算法,HyperLogLog的有点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的,并且是很小的。在Redis里面,每个HyperLogLog键只需要话费12KB内存,就可以计算接近2^64个不同元素的基数。这和计算基数时,元素越多越耗费内存就越多的集合就...原创 2018-01-15 18:34:09 · 255 阅读 · 0 评论 -
redis 发布订阅
Redis发布订阅(pub/sub)是一种消息通信模式:发布者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。下图展示了频道channel1,以及订阅这个频道的三个客户端的----client2,client5和client1之间的关系:当有新消息通过PUBLISH命令发送频道channel1时,这个消息就会被发送给订阅它的三个客户端:...原创 2018-01-16 14:00:37 · 317 阅读 · 0 评论 -
Redis 事务
Redis 事务可以一次执行多个命令,并且带有以下两个重要的保证:·批量操作在发送EXEC命令前被放入队列缓存。·收到EXEC命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。·在事务执行过程中,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:·开始事务·命令入队·执行事务 实例 以下是一个事务...原创 2018-01-16 14:21:07 · 244 阅读 · 0 评论 -
Redis 数据备份与恢复
Redis SAVE命令用于创建当前数据库的备份。语法 redis 127.0.0.1:6379> SAVE 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1:6379> SAVE OK127.0.0.1:6379> SAVE OK该命令将在redis安装目录中创建dump.rdb文件。 恢...原创 2018-01-16 14:35:38 · 367 阅读 · 0 评论 -
Redis 安全
我们可以通过redis的配置文件设置密码参数,这样客户端连接到redis服务就需要密码验证,这样可以让你的redis服务更安全。实例 我们可以通过以下命令查看是否设置了密码验证: 127.0.0.1:6379> CONFIG get requirepass1) "requirepass"2) "".0.1:6379> CONFIG get requirepa...原创 2018-01-16 14:56:29 · 377 阅读 · 0 评论 -
Redis 性能测试
redis 性能测试是通过同时执行多个命令实现的。语法redis-benchmark [option] [option value]-benchmark [option] [option value]实例redis-benchmark -n 10000PING_INLINE: 141043.72 requests per secondPING_BULK: 142...原创 2018-01-16 15:23:48 · 441 阅读 · 0 评论 -
Redis 客户端连接
Redis通过监听一个TCP端口或Unix socket的方式来接收来自客户端的连接,当一个连接建立后,Redis内部会进行以下一些操作: ·首先,客户端socket会被设置为非阻塞模式,因为Redis在网络事件处理上采用的是非阻塞多路复用模型。 ·然后为这个socket设置TCP_NODELAY属性,禁用Nagle算法。 ·然后创建一个可读的文件事件用于监听这个客户端soc...原创 2018-01-16 15:46:09 · 332 阅读 · 0 评论 -
Redis 管道技术
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味这通常情况下一个请求会遵循以下步骤: ·客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。 ·服务端处理命令,并将结果返回给客户端。 Redis 管道技术 Redis管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务...原创 2018-01-16 16:02:14 · 217 阅读 · 0 评论 -
Redis 分区
分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。分区的优势通过利用多太计算机内存的和值,允许我们构造更大的数据库。 通过多核和多台计算机,允许我们扩展计算能力;通过多台计算机和网络适配器,允许我们扩展网络宽带。分区的不足涉及多个key的操作通常是不被支持的。举例来说,当两个set映射到不同的redis实例上时,你就不能对这两个set执行交集操作...原创 2018-01-16 16:23:01 · 612 阅读 · 0 评论 -
redis 服务器
Redis服务器命令主要是用于管理redis服务。实例 redis 127.0.0.1:6379> INFO# Serverredis_version:2.8.13redis_git_sha1:00000000redis_git_dirty:0redis_build_id:c2238b38b1edb0e2redis_mode:standaloneos:Linux...原创 2018-01-15 18:09:53 · 277 阅读 · 0 评论 -
Redis 连接
Redis连接命令主要用于连接redis服务。实例 redis 127.0.0.1:6379> AUTH "password"OKredis 127.0.0.1:6379> PINGPONG127.0.0.1:6379> AUTH "password"OKredis 127.0.0.1:6379> PINGPONG 以上实例演示了客户端如何通...原创 2018-01-15 18:02:06 · 258 阅读 · 0 评论 -
Redis 安装
Window下安装 下载地址:https://github.com/MSOpenTech/redis/releases Redis支持32位和64位。这个需要根据系统平台的实际情况选择,这里我们下载Redis_x64-xxx.zip压缩包到C盘,解压后,将文件夹重命名为redis。 打开一个cmd窗口使用cd命令切换目录到C:\redis运行redis-server.ex...原创 2018-01-11 12:35:43 · 192 阅读 · 0 评论 -
Redis 数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set: 有序集合)。String(字符串) string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据。...原创 2018-01-12 14:38:38 · 162 阅读 · 0 评论 -
Redis 配置
Redis的配置文件位于Redis安装目录下,文件名为redis.conf。 你可以通过CONFIG命令查看或设置配置项。 语法 Redis CONFIG 命令格式如下: redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME127.0.0.1:6379> CONFIG GET CONFIG_S...原创 2018-01-12 15:49:24 · 322 阅读 · 0 评论 -
Redis 命令
Redis 命令用于在redis服务上执行操作。 要在redis服务上执行命令需要一个redis客户端。Redis客户端在我们之前下载的redis的安装包中。语法 $ redis-cli-cli实例 启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务。 $redis-cliredis 12...原创 2018-01-12 16:03:18 · 294 阅读 · 0 评论 -
Redis 键(key)
Redis的键命令用来管理redis的键。语法 redis 127.0.0.1:6379> COMMAND KEY_NAME127.0.0.1:6379> COMMAND KEY_NAME实例 redis 127.0.0.1:6379> SET runoobkey redisOKredis 127.0.0.1:6379> DEL run...原创 2018-01-15 14:54:29 · 352 阅读 · 0 评论 -
Redis String(字符串)
Redis字符串数据类型的相关命令用来管理redis字符串值。语法 redis 127.0.0.1:6379> COMMAND KEY_NAME127.0.0.1:6379> COMMAND KEY_NAME实例 redis 127.0.0.1:6379> SET runoobkey redisOKredis 127.0.0.1:6379&g...原创 2018-01-15 15:32:42 · 374 阅读 · 0 评论 -
Redis hash(哈希)
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis中的每个hash可以存储2^32-1个键值对(40多亿)。实例 127.0.0.1:6379> HMSET runoobkey name "redis tutorial" description "redis basic commands for cachi...原创 2018-01-15 15:50:10 · 420 阅读 · 0 评论 -
Redis list(列表)
Redis列表是简单符串的列表,按照插入顺序排序。你可以添加一个元素到列表的头部或尾部。一个列表最多可以包含2^32-1个元素。实例 redis 127.0.0.1:6379> LPUSH runoobkey redis(integer) 1redis 127.0.0.1:6379> LPUSH runoobkey mongodb(integer) 2redi...原创 2018-01-15 16:17:49 · 305 阅读 · 0 评论 -
Redis Set(集合)
Redis的Set是String类型的无序集合。集合成员是唯一的,这就意味着集合不能出现重复的数据。Redis中集合是通过哈希表表现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为2^32-1(4294967295,每个集合可存储40多亿个成员)。实例 edis 127.0.0.1:6379> SADD runoobkey redis(integer...原创 2018-01-15 17:23:10 · 329 阅读 · 0 评论 -
Redis 有序集合(sorted set)
Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表现的,所以添加、删除、查找的复杂度都是O(1)。集合中最大的成员数为2^32-1(4294967295, 每个集合可存储40多...原创 2018-01-15 17:52:09 · 358 阅读 · 0 评论 -
PHP 使用 Redis
安装 开始在PHP中使用Redis前,我们需要确保已经安装了redis服务和PHP redis驱动,且你的机器上能正常使用PHP。接下来让我们安装PHP redis驱动:下载地址为:https://github.com/phpredis/phpredis/releases。PHP安装redis扩展 以下操作需要在下载的phpredis目录中完成:$ wget https://...原创 2018-01-17 09:35:59 · 285 阅读 · 0 评论