Redis 初探(4)——Redis 的特性
一、多数据库
每一个 Redis 实例可以包括多个数据库,客户端可以指定连接某个 Redis 实例的某个数据库。一个Redis实例最多可以提供 16 个数据库,下标从 0 到 15,客户端默认连接第 0 号数据库。
含义 | 方法 |
---|---|
选择第 n 号数据库 | select n |
将当前库的 key 转移到第 n 号数据库 | move key n |
1 | wxs@ubuntu:/usr/local/redis/src$ ./redis-cli #默认进入0号数据库 |
这里补充下之前没有提到的 Redis 服务器的一些命令:
含义 | 方法 |
---|---|
测试连接状态是否可用 | ping |
命令行中打印内容 | echo xxx |
返回当前数据库中 key 的数目 | dbsize |
获取服务器的信息和统计 | info |
删除当前选择数据库中所有key | flushdb |
删除所有数据库中所有key | flushall |
1 | wxs@ubuntu:/usr/local/redis/src$ ./redis-cli |
二、消息订阅与发布
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。
含义 | 方法 |
---|---|
订阅频道 | subscribe cctv |
批量订阅频道 | psubscribe cctv* |
在指定频道中发送消息 | publish cctv “hello” |
实现消息的订阅和发布至少需要两个终端,我们在终端1中订阅 cctv 这个频道的消息:
1 | 127.0.0.1:6379> subscribe cctv |
在终端2中向 cctv 这个频道发布消息:
1 | wxs@ubuntu:/usr/local/redis/src$ ./redis-cli |
此时在终端1中就接收到了消息:
我们也可以以一种正则的形式订阅多个频道,比如 cctv 下面有多个频道,例如 cctv-1、cctv-2 等等,我们只需订阅这个即可:
psubscribe cctv*
三、事务
Redis 和其他数据库一样,也支持事务功能,但是 Redis 的数据库并不是一种真正的事务,它其实更像是一种批处理。
传统数据库意义上的事务,是将多条 SQL 语句作为一个整体,如果其中任何一条语句执行失败,那么这些语句都不会被执行。但是Redis的事务,如果有某一条命令执行失败,其后的命令仍然会执行。
含义 | 方法 |
---|---|
开启事务(类似:begin transaction) | multi |
提交事务(类似:commit) | exec |
事务回滚(类似:rollback) | discard |
1 | wxs@ubuntu:/usr/local/redis/src$ ./redis-cli |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jitwxs!
评论