redis5 别的操作及注意点及特征消息订阅与分布,redis 事务
aaaa
消息订阅与分布
在我们实例中我们创建了订阅频道名为 redisChat:
- redis 127.0.0.1:6379> SUBSCRIBE redisChat
- Reading messages... (press Ctrl-C to quit)
- 1) "subscribe"
- 2) "redisChat"
- 3) (integer) 1
现在,我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息。
- redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
- (integer) 1
- redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by w3cschool.cc"
- (integer) 1
- # 订阅者的客户端会显示如下消息
- 1) "message"
- 2) "redisChat"
- 3) "Redis is a great caching technique"
- 1) "message"
- 2) "redisChat"
- 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命令的基本语法如下:
- 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"