Redis初探(4)——Redis的特性

以你之姓@ 2022-05-30 03:26 240阅读 0赞

1.多数据库

每一个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号数据库
  2. 127.0.0.1:6379> keys *
  3. 1) "myList"
  4. 2) "mySet3"
  5. 3) "mySet1"
  6. 4) "myListB"
  7. 5) "userName"
  8. 6) "mySet2"
  9. 7) "int_num"
  10. 8) "float_num"
  11. 127.0.0.1:6379> move userName 1 #将userName移到1号数据库
  12. (integer) 1
  13. 127.0.0.1:6379> exists userName #userName已经不存在于0号数据库
  14. (integer) 0
  15. 127.0.0.1:6379> select 1 #进入1号数据库
  16. OK
  17. 127.0.0.1:6379[1]> exists userName #userName存在于1号数据库
  18. (integer) 1

这里补充下之前没有提到的Redis服务器的一些命令:


































含义 方法
测试连接状态是否可用 ping
命令行中打印内容 echo xxx
返回当前数据库中key的数目 dbsize
获取服务器的信息和统计 info
删除当前选择数据库中所有key flushdb
删除所有数据库中所有key flushall
  1. wxs@ubuntu:/usr/local/redis/src$ ./redis-cli
  2. 127.0.0.1:6379> select 1 #进入1号数据库
  3. OK
  4. 127.0.0.1:6379[1]> ping #检查连接状态
  5. PONG
  6. 127.0.0.1:6379[1]> dbsize #获取当前数据库key数目
  7. (integer) 1
  8. 127.0.0.1:6379[1]> flushdb #清空当前数据库
  9. OK
  10. 127.0.0.1:6379[1]> keys *
  11. (empty list or set)
  12. 127.0.0.1:6379[1]> flushall #清空所有数据库
  13. OK
  14. 127.0.0.1:6379[1]> select 0
  15. OK
  16. 127.0.0.1:6379> keys *
  17. (empty list or set)

2. 消息订阅与发布

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。






















含义 方法
订阅频道 subscribe cctv
批量订阅频道 psubscribe cctv*
在指定频道中发送消息 publish cctv “hello”

实现消息的订阅和发布至少需要两个终端,我们在终端1中订阅cctv这个频道的消息:

  1. 127.0.0.1:6379> subscribe cctv
  2. Reading messages... (press Ctrl-C to quit)
  3. 1) "subscribe"
  4. 2) "cctv"
  5. 3) (integer) 1

在终端2中向cctv这个频道发布消息:

  1. wxs@ubuntu:/usr/local/redis/src$ ./redis-cli
  2. 127.0.0.1:6379> publish cctv "send Message to cctv..."
  3. (integer) 1
  4. 127.0.0.1:6379>

此时在终端1中就接收到了消息:
20180303201616787

我们也可以以一种正则的形式订阅多个频道,比如cctv下面有多个频道,例如cctv-1、cctv-2等等,我们只需订阅这个即可:

psubscribe cctv*

3.事务

Redis和其他数据库一样,也支持事务功能,但是Redis的数据库并不是一种真正的事务,它其实更像是一种批处理

传统数据库意义上的事务,是将多条SQL语句作为一个整体,如果其中任何一条语句执行失败,那么这些语句都不会被执行。但是Redis的事务,如果有某一条命令执行失败,其后的命令仍然会执行






















含义 方法
开启事务(类似:begin transaction) multi
提交事务(类似:commit) exec
事务回滚(类似:rollback) discard
  1. wxs@ubuntu:/usr/local/redis/src$ ./redis-cli
  2. 127.0.0.1:6379> set num 1
  3. OK
  4. 127.0.0.1:6379> set name jitwxs
  5. OK
  6. 127.0.0.1:6379> multi #开启事务
  7. OK
  8. 127.0.0.1:6379> incr num
  9. QUEUED
  10. 127.0.0.1:6379> incr name
  11. QUEUED
  12. 127.0.0.1:6379> set age 20
  13. QUEUED
  14. 127.0.0.1:6379> exec #执行事务
  15. 1) (integer) 2
  16. 2) (error) ERR value is not an integer or out of range #命令报错
  17. 3) OK #前面命令出错后这条命令仍然执行了
  18. 127.0.0.1:6379> get num
  19. "2"
  20. 127.0.0.1:6379> get name
  21. "jitwxs"
  22. 127.0.0.1:6379> get age #该命令的确执行了
  23. "20"
  24. 127.0.0.1:6379>

发表评论

表情:
评论列表 (有 0 条评论,240人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Redis4.0新特性

    redis 4.0 新特性 Redis 4.0在2017年7月发布为GA。包含几个重大改进:更好的复制(PSYNC2),线程DEL / FLUSH,混合RDB + AOF格式

    相关 Redis初探(6)——Redis集群

    之前我们所学习的都是 Redis 的单机版,我们知道 Redis 之所以读取速度快是因为它是存储在内存中的。内存的容量是有限的,单台 Redis 会碰到性能瓶颈,这就需要使用

    相关 Redis特性

    目录 (1)相关特性: 多数据库 1,使用select切换数据库:select 2,移动key到任意数据库:move 支持事务 Redis的持久化 (1)RDB方