一、Redis发布订阅
subscribe redisChat
publish redisChat ****
发布订阅命令:
1 PSUBSCRIBE pattern [pattern ...]
订阅一个或多个符合给定模式的频道
2 PUBSUB subcommand [argument [argument ...]]
查看订阅与发布系统状态
3 PUBLISH channel message
将信息发送到指定的频道
4 PUNSUBSCRIBE [pattern [pattern ...]]
退订所有给定模式的频道
5 SUBSCRIBE channel [channel ...]
订阅给定的一个或多个频道的信息。
6 UNSUBSCRIBE [channel [channel ...]]
指退订给定的频道
二、Redis事务
批量操作在发送exec命令前被放入队列缓存
收到exec命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行
在事务执行过程中,其他客户端提交的命令不会插入到事务执行的命令序列中
事务以MULTI开始,然后将多个命令入队列到事务中,最后由EXEC命令触发
1 DISCARD 取消事务,放弃执行事务块内的所有命令
2 EXEC 执行所有事务块内的命令
3 MULTI 标记一个事务块的开始
4 UNWATCH 取消 WATCH 命令对所有 key 的监视
5 WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
三、Redis脚本
EVAL script numkeys key [key ...] arg [arg ...]
EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
四、Redis连接
1 AUTH password 验证密码是否正确
2 ECHO message 打印字符串
3 PING 查看服务是否运行
4 QUIT 关闭当前连接
5 SELECT index 切换到指定的数据库
INFO 何获取 redis 服务器的统计信息
五、Redis数据备份与恢复
save 将在redis安装目录中创建dump.rdb文件,如需恢复数据,只需将备份文件移动到安装目录并启动服务即可
config get dir 获取安装目录
bgsave 也可备份文件,该命令在后台执行
六、Redis安全
config get requirepass 查看是否设置密码
config set requirepass "runoob"
auth "runoob"
七、Redis 性能测试
redis-benchmark [option] [option value]
e.g.
redis-benchmark -n 10000 -q
同时执行 10000 个请求来检测性能
redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q
主机为 127.0.0.1,端口号为 6379,执行的命令为 set,lpush,请求数为 10000,通过 -q 参数让结果只显示每秒执行的请求数
八、Redis 客户端连接
最大连接数:2.4版本hardcode最大连接数,2.6版本可配置
config get maxclients 获取最大连接数
启动时设置最大连接数:redis -server --maxclients 1000000
客户端命令:
1 CLIENT LIST 返回连接到 redis 服务的客户端列表
2 CLIENT SETNAME 设置当前连接的名称
3 CLIENT GETNAME 获取通过 CLIENT SETNAME 命令设置的服务名称
4 CLIENT PAUSE 挂起客户端连接,指定挂起的时间以毫秒计
5 CLIENT KILL 关闭客户端连接
九、Redis 管道技术
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务,通常情况下,一个请求遵循以下步骤:
客户端向服务器发送一个请求,并监听socket返回,通常是以阻塞模式,等待服务端响应
服务端处理请求,并将结果放回给客户端
Redis管道技术:redis管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应,可以显著提高redis服务性能
十、Redis 分区
分区类型:
范围分区:需要维护范围到实例的映射表
哈希分区:使用hash函数将key转换为一个数字,对这个整数取模,取模后映射到对应的实例
十一、JAVA连接redis