Redis 发布订阅
redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
redis客户端可以订阅任意数量的频道。当有新消息通过publish命令发送给频道时,这个消息就会被发送给订阅它的三个客户端;
Redis事务
redis事务可以一次执行多个命令。一个事务从开始执行会经历三个阶段:1、开始事务;2、命令入队;3、执行事务
单个redis命令的执行是原子性的,但redis没有在事务上增加任何维持原子性的机制,所以redis事务的执行并不是原子性的。事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续指令不做。
redis事务命令:
multi----------------------------------------标记一个事务块的开始; (备注:该命令返回ok提示信息,redis不支持事务嵌套,执行多次multi命令和执行一次是相同的效果。嵌套执行multi命令时,redis只是返回错误提示信息。)
discard-------------------------------------取消事务,放弃执行事务块内的所有命令;
exec-----------------------------------------执行所有事务块内的命令;
unwatch------------------------------------取消watch命令对所有key的监视;
watch key [key...]-------------------------监视一个或多个key,如果在事务执行之前这个或这些key被其他命令所改动,那么事务将被打断。
Redis 服务器
redis 服务器命令主要用于管理redis服务
redis服务器相关命令
bgrewriteaof-------------------------------异步执行一个AOF文件重写操作;
bgsave--------------------------------------在后台异步保存当前数据库的数据到磁盘;
client kill[ip:port][id client-id]-------------------关闭客户端连接
client list-------------------------------------------获取连接到服务器的客户端连接列表;
client getname-----------------------------------获取连接的名称;
client pause timeout----------------------------在指定时间内终止运行来自客户端的命令;
command-----------------------------------------获取redis命令总数;
config set parameter value--------------------修改redis配置参数,无需重启;
flushall---------------------------------------------删除所有数据库的所有key;
flushdb--------------------------------------------删除当前数据库的所有key;
现在较多使用redis是为什么?应该他快,那为什么快?
redis是采用C语言编写的,底层代码执行效率高,依赖性低,系统的兼容性好,稳定性高;redis是基于内存的数据库,redis采用key-value方式进行存储,也就是使用的hash结构进行操作,数据的操作时间复杂度是O(1)。