Redis 学习笔记(一):安装配置、发布订阅与事务
2017-07-20 21:48
686 查看
目录:
Redis 简介
安装与配置
键命令
Redis 发布与订阅
Redis 事务
1. Redis 简介
Remote DictionaryServer(Redis)是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis 与其它键值数据存储系统相比,有三个主要特点:
Redis 将其数据库完全保存在内存中,仅使用磁盘进行持久化;
Redis 支持一组丰富的数据类型;
Redis 可以将数据复制到任意数量的从机中。
优点:
非常快: Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。
丰富的数据类型: Redis支持大多数数据类型,例如列表,集合,排序集和散列等等。
原子性:所有Redis操作都是原子性的。
多实用工具: Redis还支持如:发布订阅,通知,key过期等功能。
2.安装与配置
Windows 下安装
下载地址:https://github.com/MicrosoftArchive/redis/releases
解压完成之后,打开 cmd ,进入到 Redis 的解压目录(我的在 D:\Redis-x64-3.2.100),运行下面的命令,启动服务端:
redis-server.exe redis.windows.conf
会出现下面的服务端界面
然后再启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。
同样切换到 Redis 目录下,运行下面命令连接服务端
redis-cli.exe -h 127.0.0.1 -p 6379 #127.0.0.1是IP地址,
会出现下面客户端界面,表示已经启动客户端并连接到服务端,可以进行数据库操作了。
Linux 下安装
Ubuntu:
# sudo apt-get update
# sudo apt-get install redis-server
# redis-server #启动 redis 服务
打开另一个终端,执行下面命令启动客户端
# redis-cli # 打开 redis 客户端
CentOS:
下载编译
# wgethttp://download.redis.io/releases/redis-2.8.17.tar.gz
#下载源码
# tar xzf redis-2.8.17.tar.gz
#解压
# cd redis-2.8.17 #进入 redis 目录
# make #编译
启动服务器
# cd src
# ./redis-server
打开另一个终端,启动客户端
# cd src
# ./redis-cli
服务端界面:
客户端界面:
查看参数
redis 127.0.0.1:6379> CONFIG GET CONFIG_NAME #获取参数信息
redis 127.0.0.1:6379> CONFIG GET * #获取所有参数
设置参数
redis
127.0.0.1:6379> CONFIG SET CONFIG_NAME CONFIG_VALUE
常用参数含义:
[align=center][/align]
[align=center][/align]
Redis 提供了两种持久化方式:RDB 和 AOF:
RDB 是一个非常紧凑的文件,它保存了 Redis 在某个时间点上的数据集。save 参数指定同步条件:多少秒内发生多少次更新时进行同步。SAVE 和 BGSAVE 命令用于保存 RDB 快照。
AOF 日志记录服务器执行的所有写操作命令。每次命令追加到文件末尾。appendfsync 参数指定更新条件:no(等操作系统缓存时更新)、always(每次写操作都更新)、everysec(每秒更新一次)。
虚拟内存(VM)机制
由参数 vm-enabled yes设置。
VM 机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中。
使用VM机制的原因:
1)redis 是内存数据库,数据很大时不能全部加载到内存。
2)被访问的数据总是占全部数据小部分,大部分数据是很少被访问的。
3. 键命令
Redis 键命令用于管理 redis 的键。 键命令的基本语法如下:
redis 127.0.0.1:6379> TYPE keyname
TYPE 是键命令,keyname 是键名。常见的 redis 键命令有:
使用例子:
4. 发布与订阅
发布订阅 (pub/sub) 是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
订阅
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client1 、 client2 和 client3 之间的关系:
发布
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
使用例子:
5. 事务
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
原子操作:事务中的命令要么全部被执行,要么全部都不执行。
一个事务从开始到执行会经历以下三个阶段:
开始事务;
命令入队;
执行事务。
使用例子:
Redis 简介
安装与配置
键命令
Redis 发布与订阅
Redis 事务
1. Redis 简介
Remote DictionaryServer(Redis)是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis 与其它键值数据存储系统相比,有三个主要特点:
Redis 将其数据库完全保存在内存中,仅使用磁盘进行持久化;
Redis 支持一组丰富的数据类型;
Redis 可以将数据复制到任意数量的从机中。
优点:
非常快: Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。
丰富的数据类型: Redis支持大多数数据类型,例如列表,集合,排序集和散列等等。
原子性:所有Redis操作都是原子性的。
多实用工具: Redis还支持如:发布订阅,通知,key过期等功能。
2.安装与配置
Windows 下安装
下载地址:https://github.com/MicrosoftArchive/redis/releases
解压完成之后,打开 cmd ,进入到 Redis 的解压目录(我的在 D:\Redis-x64-3.2.100),运行下面的命令,启动服务端:
redis-server.exe redis.windows.conf
会出现下面的服务端界面
然后再启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。
同样切换到 Redis 目录下,运行下面命令连接服务端
redis-cli.exe -h 127.0.0.1 -p 6379 #127.0.0.1是IP地址,
6379是服务器端口
会出现下面客户端界面,表示已经启动客户端并连接到服务端,可以进行数据库操作了。
Linux 下安装
Ubuntu:
# sudo apt-get update
# sudo apt-get install redis-server
# redis-server #启动 redis 服务
打开另一个终端,执行下面命令启动客户端
# redis-cli # 打开 redis 客户端
CentOS:
下载编译
# wgethttp://download.redis.io/releases/redis-2.8.17.tar.gz
#下载源码
# tar xzf redis-2.8.17.tar.gz
#解压
# cd redis-2.8.17 #进入 redis 目录
# make #编译
启动服务器
# cd src
# ./redis-server
打开另一个终端,启动客户端
# cd src
# ./redis-cli
服务端界面:
客户端界面:
查看参数
redis 127.0.0.1:6379> CONFIG GET CONFIG_NAME #获取参数信息
redis 127.0.0.1:6379> CONFIG GET * #获取所有参数
设置参数
redis
127.0.0.1:6379> CONFIG SET CONFIG_NAME CONFIG_VALUE
常用参数含义:
[align=center][/align]
[align=center][/align]
参数 | 含义 | 默认/可选值 |
daemonize no | 是否以守护进程运行, | 默认no |
port 6379 | 监听端口, | 默认6379 |
bind127.0.0.1 | 绑定的IP地址 | |
timeout 300 | 客户端最长闲置时间, | 0关闭此功能 |
loglevel verbose | 日志记录级别 | 默认verbose |
databases 16 | 数据库的数量 | 默认0 |
save <seconds> <changes> | 数据同步条件,多少秒内多少次更新。保存RDB快照 | 900 1、300 10 、60 10000 |
dbfilename dump.rdb | 本地数据库文件名 | 默认dump.rdb |
dir ./ | 本地数据库存放目录 | |
Slaveof <ip> <port> | 为slav时,master的 IP及端口 | |
Masterauth < password> | slav连接master的密码 | |
maxclients 128 | 同一时间最大客户端连接数 | 默认无限制 |
maxmemory <bytes> | 最大内存限制 | |
appendonly no | 每次更新后是否写日志 | 默认为no |
appendfilename appendonly.aof | 日志文件名 | |
appendfsync everysec | 更新日志条件。保存AOF日志 | no always everysec |
RDB 是一个非常紧凑的文件,它保存了 Redis 在某个时间点上的数据集。save 参数指定同步条件:多少秒内发生多少次更新时进行同步。SAVE 和 BGSAVE 命令用于保存 RDB 快照。
AOF 日志记录服务器执行的所有写操作命令。每次命令追加到文件末尾。appendfsync 参数指定更新条件:no(等操作系统缓存时更新)、always(每次写操作都更新)、everysec(每秒更新一次)。
虚拟内存(VM)机制
由参数 vm-enabled yes设置。
VM 机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中。
使用VM机制的原因:
1)redis 是内存数据库,数据很大时不能全部加载到内存。
2)被访问的数据总是占全部数据小部分,大部分数据是很少被访问的。
3. 键命令
Redis 键命令用于管理 redis 的键。 键命令的基本语法如下:
redis 127.0.0.1:6379> TYPE keyname
TYPE 是键命令,keyname 是键名。常见的 redis 键命令有:
基本键命令 | 描述 |
DEL key | key存在时删除 |
EXISTS key | 检查 key是否存在 |
EXPIRE key seconds | 设置 key的过期时间(秒) |
PEXPRIRE key ms | 设置 key的过期时间(毫秒) |
KEYS pattern | 查找给定模式的 key |
MOVE key dbname | 移动 key到数据库 dbname中 |
PERSIST key | 移除 key的过期时间 |
PTTL key | 以毫秒返回过期时间 |
TTL key | 以秒返回过期时间 |
RANDOMKEY | 随机返回一个 key |
RENAME key newkey | 对 key改名 |
TYPE key | 返回 key对应值的类型 |
4. 发布与订阅
发布订阅 (pub/sub) 是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
订阅
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client1 、 client2 和 client3 之间的关系:
发布
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
发布订阅命令 | 描述 |
SUBSCRIBE channel [channel] | 订阅:一个或多个给定的频道 |
PUBLISH channel message | 发布:将信息发送到指定频道 |
PUBSUB subcommand [arg[arg..]] | 查看订阅与发布的状态 |
UNSUBSCRIBE [channel [channel..]] | 退订:给定的频道 |
PSUBSCRIBE pattern [pattern..] | 订阅:给定模式的频道 |
PUNSUBSCRIBE [pattern [pattern..]] | 退订:给定模式的频道 |
5. 事务
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
原子操作:事务中的命令要么全部被执行,要么全部都不执行。
一个事务从开始到执行会经历以下三个阶段:
开始事务;
命令入队;
执行事务。
事务命令 | 描述 |
MULTI | 标记:一个事务的开始 |
EXEC | 执行:事务块内所有命令 |
DISCARD | 取消事务:放弃执行事务块内的所有命令 |
WATCH key [key..] | 监视:一个或多个键。如果键被改动,事务被打断 |
UNWATCH | 取消监视:对所有键 |
相关文章推荐
- redis学习笔记六之发布订阅
- Redis系列学习笔记10 发布与订阅
- 六 redis学习笔记之发布订阅
- [Redis学习笔记]-Redis 发布订阅(充当消息组件)
- Redis基础学习--Redis 事务(watch命令)、生存时间、排序、消息通知("发布/订阅"模式)、管道、节省空间
- Redis学习笔记四:独立功能之发布与订阅
- Redis学习笔记——(一)Redis安装配置
- Redis 学习笔记(一)安装与配置
- 六 redis学习笔记之发布订阅
- (二)Redis 笔记——发布&订阅、事务、数据库操作
- Redis学习笔记8--Redis发布/订阅
- 《Redis设计与实现》学习笔记-发布订阅与事务
- redis学习笔记:发布和订阅
- 【Redis学习】:redis特性——多数据库、服务器命令、消息订阅与发布和事务
- 六 redis学习笔记之发布订阅
- Redis学习笔记(九) 命令进阶:Pub/Sub(发布/订阅)操作
- 发布与订阅消息--Redis学习笔记八
- Redis学习笔记8--Redis发布/订阅
- 六 redis学习笔记之发布订阅
- redis学习笔记 发布与订阅