redis5 别的操作及注意点及特征消息订阅与分布,redis 事务

 

 

 

aaaa

消息订阅与分布

在我们实例中我们创建了订阅频道名为 redisChat:

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

现在,我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息。

  1. redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
  2.  
  3. (integer) 1
  4.  
  5. redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by w3cschool.cc"
  6.  
  7. (integer) 1
  8.  
  9. # 订阅者的客户端会显示如下消息
  10. 1) "message"
  11. 2) "redisChat"
  12. 3) "Redis is a great caching technique"
  13. 1) "message"
  14. 2) "redisChat"
  15. 3) "Learn redis by w3cschool.cc"

bb数据库

@选择数据库

一个redis实例最多可提供16个数据库,下标从0到15,客户端默认连接第0号数据库,也可以通过select选择连接哪个数据库

select 1

@把一个键移库

move key  1

@flushall

是所有课的库都删除

建议:不同的应用系统要使用不同的redis实例而不是使用同一个redis实例下的不同数据库

 

CC

redis 事务

1、 在事务中的所有命令都将会被串行化的顺序执行,事务执行期间,Redis不会再为其它客户端的请求提供任何服务,从而保证了事物中的所有命令被原子的执行

2、 和关系型数据库中的事务相比,在Redis事务中如果有某一条命令执行失败,其后的命令仍然会被继续执行。

5、 当使用Append-Only模式时,Redis会通过调用系统函数write将该事务内的所有写操作在本次调用中全部写入磁盘。然而如果在写入的过程中出现系统崩溃,如电源故障导致的宕机,那么此时也许只有部分数据被写入到磁盘,而另外一部分数据却已经丢失。Redis服务器会在重新启动时执行一系列必要的一致性检测,一旦发现类似问题,就会立即退出并给出相应的错误提示。此时,我们就要充分利用Redis工具包中提供的redis-check-aof工具,该工具可以帮助我们定位到数据不一致的错误,并将已经写入的部分数据进行回滚。修复之后我们就可以再次重新启动Redis服务器了。

 

 

 

l multi:开启事务用于标记事务的开始,其后执行的命令都将被存入命令队列,直到执行EXEC时,这些命令才会被原子的执行,类似与关系型数据库中的:begin transaction

l exec:提交事务,类似与关系型数据库中的:commit

l discard:事务回滚,类似与关系型数据库中的:rollback

 

127.0.0.1:6379> multi

OK

127.0.0.1:6379> set name jack

QUEUED

127.0.0.1:6379> discard

OK

127.0.0.1:6379> get name

"tom"

 

 

 

 

 

 

Redis - 脚本

Redis脚本使用Lua解释脚本用于评估计算。它内置的Redis,从2.6.0版本开始使用脚本命令 eval。

语法

eval命令的基本语法如下:

  1. redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
    1) "key1"

2) "key2"

3) "first"

4) "second"

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-11-22 11:51  克维拉  阅读(1021)  评论(0编辑  收藏  举报