BasicLab基础架构实验室
本人深耕基础架构领域,曾在国内500强大厂研发企业级百亿量级吞吐中间件,擅长Java语言、Go语言、Python语言、C语言、NodeJS、Web、Linux、深度学习、大数据、云原生等
展开
-
Redis实战(五)-字符串
字符串类型是Redis最基础的数据结构。首先键都是字符串类型,而且其他几种数据结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习奠定基础。如图2-7所示,字符串类型的值实际可以是字符串(简单的字符串、复杂的字符串(例如JSON、XML))、数字(整数、浮点数),甚至是二进制(图片、音频、视频),但是值最大不能超过512MB。一、命令字符串类型的命令比较多,希望读者尽可能都去了解和掌握。 1、设置值set key valu...原创 2021-09-16 20:59:32 · 294 阅读 · 0 评论 -
Redis实战(四)-全局命令
Redis有5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令。1.查看所有键keys *下面插入了3对字符串类型的键值对:127.0.0.1:6379> set hello worldOK127.0.0.1:6379> set java jedisOK127.0.0.1:6379> set python redis-pyOKkeys*命令会将所有的键输出:127.0.0.1...原创 2021-09-16 20:42:00 · 189 阅读 · 0 评论 -
Redis实战(三)-Redis集群环境搭建(自动搭建)
上文我们通过手动搭建集群的方式完成了3主3从集群的部署,但是当集群节点众多时,必然会加大搭建集群的复杂度和运维成本。因此Redis官方提供了redis-trib.rb工具方便我们快速搭建集群。redis-trib.rb是采用Ruby实现的Redis集群管理工具。内部通过Cluster相关命令帮我们简化集群创建、检查、槽迁移和均衡等常见运维操作,使用之前需要安装Ruby依赖环境。下面介绍搭建集群的详细步骤。一、redis-trib安装 首先我们下载ru...原创 2021-09-16 18:29:16 · 517 阅读 · 0 评论 -
Redis实战(二)-Redis集群环境搭建(手动搭建)
Redis集群业界标准是3主3从的方式,在上文我们已经搭建了单机环境,本文我们来把集群环境搭建起来。一、准备工作本专栏是基于Centos7.8环境的基础上搭建的,Centos 也是官方推荐的操作系统。Redis 集群至少需要6台服务器(3主3从模式),原因是主节点需要三台服务器(redis 投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以二个节点无法构成集群),每个主节点又需要一个从节点来做高可用,所以我们需要虚拟化六台服务器来做这...原创 2021-09-16 17:37:52 · 238 阅读 · 0 评论 -
Redis实战(一)-Redis单机环境搭建
Redis,业界也用了很多年了,可以说不管是什么体量的公司,基本都会选择使用它来做为公司业务服务的缓存层,它也成为了业界缓存的事实标准(但是需要缓存海量数据的业务场景中不太适用,比如需要缓存100GB以上的订单生命周期数据,目前还没有听说过有人缓存大量数据到Redis中的情况,海量数据存储和查询可以通过ElasticSearch来做)。注:本文作为专栏的第一篇文章,首先将带领大家搭建起来 ElasticSearch 单机实战环境,第二篇文章在这个单机的基础上配置集群环境,...原创 2021-09-16 15:21:01 · 558 阅读 · 0 评论 -
Redis实战(十二)-工具类封装(全类型操作/分布式锁/消息队列/自增序列)
平时工作中,我们只需要把Redis相关操作抽离到common包里,然后需要使用到这个redis功能的,再把它依赖进去,特此记录便于日后查阅。 下面就是工作中抽离出的Redis操作的工具类代码。1、maven父级依赖 org.springframework.boot spring-boot-starter-parent原创 2021-09-16 22:11:52 · 587 阅读 · 0 评论 -
Redis实战(十一)-Jedis连接池的使用方法
客户端连接Redis使用的是TCP协议,直连的方式每次需要建立TCP连接,而连接池的方式是可以预先初始化好Jedis连接,所以每次只需要从Jedis连接池借用即可,而借用和归还操作是在本地进行的,只有少量的并发同步开销,远远小于新建TCP连接的开销。另外直连的方式无法限制Jedis对象的个数,在极端情况下可能会造成连接泄露,而连接池的形式可以有效的保护和控制资源的使用。但是直连的方式也并不是一无是处,优劣势图示如下:Jedis提供了JedisPool这个类作为对Je...原创 2021-09-16 21:59:10 · 639 阅读 · 0 评论 -
Redis实战(十)-Java客户端Jedis
Jedis属于Java的第三方开发包,使用集成构建工具,例如maven、gradle等将Jedis目标版本的配置加入到项目中。<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.2</version></dependency>...原创 2021-09-16 21:53:33 · 287 阅读 · 0 评论 -
Redis实战(九)-有序集合
有序集合相对于哈希、列表、集合来说会有一点点陌生,但既然叫有序集合,那么它和集合必然有着联系,它保留了集合不能有重复成员的特性,但不同的是,有序集合中的元素可以排序。但是它和列表使用索引下标作为排序依据不同的是,它给每个元素设置一个分数(score)作为排序的依据。如图2-24所示,该有序集合包含kris、mike、frank、tim、martin、tom,它们的分数分别是1、91、200、220、250、251,有序集合提供了获取指定分数和元素范围查询、计算成员排名等功能,合理的利用有序集...原创 2021-09-16 21:46:30 · 208 阅读 · 0 评论 -
Redis实战(八)-集合
集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。集合user:1:follow包含着"it"、"music"、"his"、"sports"四个元素。Redis除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多实际问题。1、集合内操作(1)添加元素sadd key element [eleme...原创 2021-09-16 21:30:52 · 139 阅读 · 0 评论 -
Redis实战(七)-列表
列表(list)类型是用来存储多个有序的字符串,如图2-18所示,a、b、c、d、e五个元素从左到右组成了一个有序的列表,列表中的每个字符串称为元素(element)。在Redis中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景。1、新增(1)从右边插入元素rpush key value [value .....原创 2021-09-16 21:20:35 · 191 阅读 · 0 评论 -
Redis实战(六)-哈希
几乎所有的编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组。在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},...{fieldN,valueN}}。1、设置值hset key field value下面为user:1添加一对field-value:127.0.0.1:6379> hset user:1 name tom(integer) 1...原创 2021-09-16 21:08:49 · 202 阅读 · 0 评论