![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
Java 程序源
微信公众号: Java 程序源,敬请关注!
展开
-
redis 常见异常
总结生产开发环境, 常见的redis 异常。1. 异常:ERR max number of clients reached最近笔者的redis sentinel 集群突然报错说, 已到达最大连接数。笔者采用的redis 环境为sentinel 高可用集群, 问题表象为:java 应用通过jedis 连接抛出此异常使用redis客户端连接哨兵,执行info命令,抛出异常使用redis...原创 2019-08-27 16:01:14 · 448 阅读 · 0 评论 -
12. Redis 五种数据类型-有序集合Zset
Redis 数据结构-zsetRedis 中的zset 结构, 是一个既类似于hash 又类似于set 还类似于list的一种特殊数据结构. zset 会根据元素的value 自动排序, 默认是升序.类似于hash 是因为它里面的每个元素都是一个键值对, 只不过它的键值对有点儿特殊, value 必须是浮点数.类似于set 是因为它里面的元素的field 不能重复类似于list 是因...原创 2019-08-27 16:11:33 · 10400 阅读 · 0 评论 -
13. Redis key通用命令
Redis 为不同结构的key还提供了一些通用的命令, 比如查看key是否存在, 设置过期时间, 删除key等操作.1. 常用通用命令命令命令格式命令描述keyskeys $keyPattern模糊查询key列表typetype $key查看key的类型expireexpire $key $seconds设置key的过期时间, 单位为秒, 过期后自...原创 2019-08-27 16:06:44 · 10120 阅读 · 0 评论 -
14. Redis 发布订阅-实现消息队列
Redis 除了做缓存, 也可以做消息队列, 实现简单的消息的发布和订阅。Redis 消息订阅支持精确订阅和模糊订阅两种模式!1. Redis 消息队列1.1 Redis 消息队列特点当有新消息发布时, 所有订阅的客户端全部接受到消息。Redis 订阅channel时,支持模糊匹配当新的客户端订阅时,之前的消息不会被重复接受1.2 常用命令操作命令命令格式描述...原创 2019-08-27 16:11:29 · 10410 阅读 · 0 评论 -
15. Redis 事务
Redis 事务Redis 提供弱事务的支持, 但和传统关系型数据库的事务不太一致.事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。事务不会发生回滚, 当事务中的前一条命令失败之后, 不会影响之后的命令继续执行,也不会回滚之前已经执行的命令...原创 2019-08-27 16:11:26 · 10124 阅读 · 0 评论 -
16. Redis 持久化机制-RDB与AOF
Redis 是一款基于内存的Nosql 数据库, 提供高速存取服务,通常会被用做高速缓存中间件。但是,Redis 除了将数据库存储在内存,也可以将数据存储在磁盘。 Redis 提供了两种持久化方式: RDB 和 AOF. 默认情况下只开启了RDB方式, 官方建议混合使用两种方式.1. RDB 方式RDB 持久化方式能搞在指定的时间间隔内对内存中的数据进行数据快照, 即持久化到磁盘. 默认开启...原创 2019-08-27 16:11:22 · 10159 阅读 · 0 评论 -
17. Redis sentinel机制-实现高可用
Redis 的Sentinel机制是Redis官方提供的保证Redis高可用的工具,Redis Sentinel 采用Raft 分布式一致性算法来保证Redis 的高可用.1. Sentinel 机制1.1 Sentinel 主要功能Monitoring(监控): Sentinel 会不断监测主服务器和从服务器是否正常运行Notification(通知):Automatic Failo...原创 2019-08-27 16:11:16 · 10164 阅读 · 0 评论 -
18. Redis 管理命令-查看服务器状态
Redis 提供了info 命令, 可以查看Redis 服务器的相关信息。1. info 命令格式info 命令可以查询redis 服务器的相关信息, 默认查看全部的信息。也可以查看具体某部分信息, 支持的参数有:keyspace: 数据库的相关统计clients: 查看当前服务器的客户端连接数量等信息commandstats: Redis命令统计memory: 查看redis内存占...原创 2019-08-27 16:06:56 · 11089 阅读 · 0 评论 -
19. Reids 管理命令-主从复制
Redis 配置主从服务器关系可以在配置文件中指定,也可以通过slaveof命令来指定。1. 常用命令在执行redis 命令时, 如果redis 服务器设置了密码, 那么需要先使用auth 命令进行用户认证.1.1 查看当前节点角色role 命令用于查看当前节点的角色, master 表示当前节点为主节点, 还有一个从节点127.0.0.1:6481127.0.0.1:6482> ...原创 2019-08-27 16:06:53 · 10004 阅读 · 0 评论 -
20. Redis 管理命令-客户端管理
Redis 还提供了一组客户端相关的命令,用于查看当前连接的客户端数量。1.1 查看所有客户端命令: client List, 返回主要参数:id: 唯一的64位的客户端ID(Redis 2.8.12加入)。addr: 客户端的地址和端口age: 以秒计算的已连接时长idle: 以秒计算的空闲时长db: 该客户端正在使用的数据库 IDsub: 已订阅频道的数量psub: 已...原创 2019-08-27 16:06:49 · 10127 阅读 · 0 评论 -
11. Redis 五种数据类型-哈希Hash
Redis 数据类型-HashRedis 中每一个hash 就是一个微缩的memercached, 存储无序的散列列表.hash 中field 不能重复, value 可与重复.1. 常用命令此API 只适用于hash 结构的key,否则会报错.操作命令描述返回值hset $key $field $value设置指定key中的键值对如果key 不存在则自动...原创 2019-08-27 16:08:57 · 10308 阅读 · 0 评论 -
09. Redis 五种数据类型-列表List
Redis 里面的List 既是一个列表也是一个双向链表, 除了可以通过序号进行元素操作之外, 还可以对其进行push/pop操作, 以实现栈和队列的功能.list 中的元素是可以重复的.redis 的列表是非常强大的,可以实现列表,栈,固定长度列表,环形列表等结构.1. 常用命令以下API 只适用于结构为List的key, 否则会报错.1.1 非阻塞式命令Redis 的list 不...原创 2019-08-27 16:01:38 · 10299 阅读 · 0 评论 -
Redis 批量删除key
redis 客户端中,并不能实现批量删除key的功能。 可以通过redis-cli 命令来实现批量删除功能.redis-cli -h $host -p $port keys *xx | xargs redis-cli -h $host -p $port del...原创 2019-08-27 16:16:05 · 267 阅读 · 0 评论 -
01. Redis 简介
Redis 是一个开源的、先进的Key-Value 基于内存的数据库,拥有丰富地数据类型:String 、Hash 、List、Set 和 ZSet,所以也被誉为数据结构服务器。 Redis 数据存储在内存,执行速度极其之快,每秒能执行约11万集合,每秒约81000+条记录。Redis 也周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件(AOF)。1. Redis 的五种数据结构r...原创 2019-08-27 16:11:12 · 10208 阅读 · 1 评论 -
02. Redis 源码安装
Redis 官方并不提供window 的安装包, 只提供Linux 环境下的源码安装包. Redis 采用c语言编写, 因此需要安装gcc 编译器.1. 安装Redis1.1 下载redis源码包当前redis最新版本为5.04, 官方下载地址: https://redis.io1.2 解压笔者习惯于将redis源码包放于/usr/local/src 目录$ tar -zxf redi...原创 2019-08-27 16:09:23 · 10260 阅读 · 0 评论 -
03. Redis 常用配置
Redis 配置项比较多, 所支持所有配置均在redis.conf 中。 redis.conf 配置文件中对每个配置项都有详细的注释说明, 笔者整理一些常用的配置.1. redis.conf 常用配置redis 配置项比较多, 所支持的所有配置项在redis.conf配置文件中均有说明。 笔者此处只列出一些常用配置项redis 配置文件支持嵌套,可以使用include 命令引入配置文件...原创 2019-08-27 16:09:19 · 10206 阅读 · 0 评论 -
04. Redis 环境搭建-单实例
单节点的Redis 在生产环境并不多见, 但是对于日常的学习和本地开发测试, 还是经常用到的。比如说在日常工作中, 想测试某个API的用法, 那么在本地快速起一个Redis 单实例还是非常有必要的.1. 环境搭建1.2 创建日志和数据目录创建配置之前应先创建相关目录, 笔者的目录规划如下:/usr/local/etc/redis: 存储相关配置文件/logs/redis: 存储redi...原创 2019-08-27 16:09:14 · 10242 阅读 · 1 评论 -
05. Redis 环境搭建-高可用集群(HA)
在生产环境中,Redis 架构使用最多的就是Sentinel主从架构, 因为单点容易产生故障, 分片集群又过于复杂. 笔者尝试在一台服务器上搭建一个一主两从, 三个哨兵监听的Redis 集群架构。由于哨兵也可能发生单点故障,所以笔者也使用了三个哨兵来监听. 对于学习而言,搭建一个伪集群即可.1. 配置模板笔者创建一个redis的配置模板文件: template-redis.conf,一个sen...原创 2019-08-27 16:09:10 · 10217 阅读 · 0 评论 -
06. Redis 环境搭建-分片集群Cluster
Redis 支持分片集群模式, 会将数据散落在不同节点之上, 且每个数据节点都有相应的副本集. 在Redis 3.x 时创建Redis 分片集群还比较麻烦, 需要借助于redis 源码中的ruby 脚本来创建,依赖ruby 环境。 而从Redis 5.x开始, , 创建Redis 分片集群不再支持ruby脚本创建, 而是使用redis-cli 命令直接创建。这种创建方式更为方便.1. 集群配置文...原创 2019-08-27 16:11:41 · 10914 阅读 · 0 评论 -
07. Redis 客户端访问
Redis 提供了客户端访问工具redis-cli, 可以连接Redis服务器,执行Redis命令. redis-cli 有两种执行方式, 一种是交互式执行命令, 一种是非交互式执行.1. redis-cli 交互方式1.1 交互式交互式执行方式, 首先通过redis-cli 与redis服务器建立连接, 然后再执行redis相关命令, 与redis 进行交互$ redis-cli -h...原创 2019-08-27 16:11:37 · 10301 阅读 · 0 评论 -
08. Redis 五种数据类型-字符串String
Redis 数据类型-StringString 是Redis 中存储的最基本也是最简单的数据类型, String 可存储字符串,数字等。在生产应用中,通常会将业务对象序列化成json 串, 存储在String 中.String 这种数据结构中key 要唯一.1. 常用命令以下命令只适用于String 结构的key-value, 对其它结构使用会报错.redis 中的key 在全局应该是...原创 2019-08-27 16:09:06 · 10353 阅读 · 0 评论 -
10. Redis 五种数据类型-集合Set
Redis 数据类型-SetRedis 中的Set 数据结构存储的是一组无序且唯一的元素集合.1. 常用命令操作命令描述返回值smembers $key获取set中所有元素sadd $key member[member [member[member…]向set中添加多个元素,支持批量操作如果key不存在,则自动创建集合.对已存在的member 会自行忽...原创 2019-08-27 16:09:01 · 10398 阅读 · 0 评论