当前位置:首页 > Java技术 > 如何在Linux上安装Redis(内附详细教程)

如何在Linux上安装Redis(内附详细教程)

2022年08月05日 01:36:41Java技术2

前言

hello,好久不见,又断更了一段时间。同事大部分离职了,但是活还是一样,所以只能硬着头皮顶上。现在总算歇会了,决定开启Redis源码系列,希望不要啪啪啪打脸。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

什么是redis?

Redis是一种基于键值对(key-value)的NoSQL数据库,主要的数据类型包括String(字符串),hash(哈希),list(列表),set(集合),zset(有序集合),bitmaps(位图),GEO(地理信息定位)等。

注意:如果面试问Redis数据类型,前五个是基础,必须答对,后面两个是亮点。

redis的优势

1.数据存储在内存中,读取和写入速度快。如果需要持久化,可以开启相关配置,数据定期保存在硬盘上。

2.使用单线程,避免线程竞争,也避免线程之间上下文切换消耗。

3.主节点和从节点之间可以复制,水平扩展,突破单机部署的限制。

4.提供哨兵和集群方式,保证有节点发生故障,保存整个服务的高可用性。

注意:以上的优点以后都会单开章节来讨论,现在有个大概印象就行,不用死记硬背😂。

redis基本安装

上面讲的是不是太空了,眼睛说记住了,脑子说没有🤣。那我们实操下,在linux上安装redis服务,看看怎么玩?至于windows比较简单,属于开箱即用的,这边就不写了。

1.下载压缩包

先去官网下载http://download.redis.io/releases/安装包,建议是下载redis4。之后看底层结构也是使用的redis4。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

redis4和redis3的区别:

1.在redis4中,string类型的底层结构针对不同长度的字符串分为了sdshdr5,sdshdr8,sdshdr16,sdshdr32,sdshdr64等多种结构体,更加节约内存,而redis3只使用了int,embstr,raw。

2.在redis4中,持久化可以使用RDB和AOF混合方式。

2.上传到服务器并解压

   通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

3.进入src目录,执行make install进行安装

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

4.开启后台启动配置

我们打开redis.conf文件,修改daemonize为yes,让其能在后台运行。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

6.启动

使用redis-server启动redis,注意端口号为6379.

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

7.连接客户端

进入src目录,使用redis-cli连接客户端。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

redis常用API

string类型

1.设置值 set [key] [value] [expried time] [nx|xx]

上面表示设置key的字符串,值为value,过期时间为expried time 。nx表示不存在才能设置成功,用于新增;xx表示存在才能设置成功,用于更新。

我们首先给str变量设置了hello,然后尝试用nx来更新str,但是发现更新失败了,因为nx表示str不存在的时候才能设置,现在str是存在的。最后用xx来更新,发现是更新成功的。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

2.获取值 get key

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

3.批量设置值 mset [key value] [key value] [key value]

数据设置进去按组来划分的,每个key对应一个value,当设置成功后查询发现,出来是乱码,不是我们设置的中文。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

其实这不是乱码,只是客户端显示问题,我们只需要在启动客户端的时候加上--raw,指定其显示格式即可。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

4.批量获取值 mget [key] [key] [key]

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

hash类型

1.设置值 hset key field value

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

2.获取值hget key field,效果如上

3.批量设置值 hmset key [field] [value] [field] [value]

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

4.批量获取值 hmget key [field] [field] [field]

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

5.获取某个key所有的fields hkeys key

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

list类型

1.从list的左侧插入新数据 lpush key value

在list列表的左侧插入三个元素a,b,c,返回值为当前list的长度3。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

2.从list的右侧插入新数据 rpush key value

在list列表的右侧插入两个元素d ,e,返回值为当前list的长度5。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

3.查询list的所有元素

这边需要注意的是往左节点插入的三个元素顺序,lpush每次将新元素插入到列表的头部,所以顺序为 c,b,a。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

4.获取列表长度llen key

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

5.从左侧删除元素 lpop key

删除链表的第一个元素,返回值为删除的元素值c。再查询下list现在的元素,分别是b,a,d,e。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

6.从右侧删除元素 rpop key

与上面从左侧删除元素一样,返回值也为删除的元素。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

7.删除指定元素 lrem key count value

删除指定元素,重点是count,这边count分为三种情况:

1).当count>0,从左到右,最多删除count个元素。

2).当count<0,从右到左,最多删除count个元素。

3).当count=0,删除所有满足条件的元素。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

set类型

1.添加元素 sadd key[field] [field] [field]

往myset1中插入三个字符串,分别是hello,world,java,返回值为插入成功的数值。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

2.删除元素 srem key [field] [field]

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

3.计算元素个数 scard key

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

4.判断元素是否存在sismember key [field]

之前删除了myset中的hello元素,所以第一条语句的返回值为0,表示不存在。而world没有删掉,所以返回值为1,表示存在。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

5.获取所有的元素sismembers key

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

6.集合之间的并集sunion [key] [key]

我们先看myset1和myset2的数据,然后使用sunion来获取他们的并集。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

7.集合之间的交集 sinter [key] [key]

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

8.集合之间的差集 sdiff [key] [key]

这边要注意key的前后区别,如果是sdiff myset1 myset2,意思是myset1除去两者的交集,所以结果是world和cc。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

如果反之,亦然。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

zset类型

1.添加元素 zadd key [score member] [score member]

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

2.计算长度 zcard key

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

3.计算排名 zrank key member(zrevrank key member)

myzset中一共有三名学生,张三,李四,王五,他们分数分别为80分,90分,70分,那他们的排序是第一名李四90分,第二名张三80分,第三名王五70分。

zrank表示正排名,返回值为下标。zrevrank表示逆排名,返回值也是下标。

如何在Linux上安装Redis(内附详细教程) _ JavaClub全栈架构师技术笔记

结语

这篇主要是Redis的入门课程,主要从Redis是什么,哪些优点,Linux上如何快速安装,常见的数据结构和API使用。强调的是先从总体入手,对其有个大概印象,了解其和关系型数据库的区别。至于一些常见数据类型的适用场景,底层设计,我们下偏见。

如果觉得写得还行,麻烦给个赞👍,您的认可才是我写作的动力!

如果觉得有说的不对的地方,欢迎评论指出。

好了,拜拜咯。

参考资料

redis 中文存储乱码问题

Redis开发与运维

Redis深度历险:核心原理与应用实践

 

作者:学习Java的小姐姐
来源链接:https://blog.csdn.net/qq_33774822/article/details/106490297

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17809.html

分享给朋友:

“如何在Linux上安装Redis(内附详细教程)” 的相关文章

Redis的搭建(win和linux版)

Redis的搭建(win和linux版)

一、Redis是什么 redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是一种非关系型数据库,我们常用的数据库,例如mysql、Oracle、Sql Server都属于关系型数据库,Redis的...

Redis集群搭建

Redis集群搭建

一、前言 Redis作为当前比较流行的缓存数据库,在使用的过程中,如果使用单节点的Redis,当Redis出现宕机时,则无法再为应用提供服务,所以搭建Redis集群,是可以解决Redis错误时的问题。 二、开始搭建 1.下载Redis的安装包 下载地址:http://redis.io...

Redis 的数据过期了就会马上删除么?

Redis 的数据过期了就会马上删除么?

码哥,当 key 达到过期时间,Redis 就会马上删除么?先说结论,并不会立马删除,Redis 有两种删除过期数据的策略:定期选取部分数据删除;惰性删除;该命令在 Redis 2.4 版本,过期时间并不是很精确,它可能在零到一秒之间。从 Redis 2.6 开始,过期错误为 0 到 1 毫秒。EX...

Docker的安装和Redis容器

Docker的安装和Redis容器 Docker安装,环境:虚拟机CentOS 8;阿里云镜像加速;Redis容器创建。 CentOS 8的安装就不在这里演示了 连接CENTOS 使虚拟机与物理机在同一网段...

分布式|跟着“乐哉”学习redis系列教程

分布式|跟着“乐哉”学习redis系列教程

八、redis主从同步 CAP原理 CAP原理就好比分布式领域的牛顿定律,他是分布式存储的理论基石。 C:Consistent,一致性 A:Availabilty,可用性 P:Partition tolerance,分区容错性 分布...

Caused by: java.lang.IllegalStateException: RedisConnectionFactory is required

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplate' defined in class path resource [com/zhan...

springboot 排除redis的自动配置

因为要配置一个redis链接,所以将系统自带的配置排除,分别是 RedisAutoConfiguration.class 和 RedisRepositoriesAutoConfiguration.class 两个自动配置类 需要注意的是:RedisRep...

springboot集成redis报错-ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig

springboot集成redis报错-ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig

当使用Springboot 2.0以上版本集成redis的时候遇到报错信息如下: Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error c...

java对redis的基本操作

java对redis的基本操作

一、server端安装   1、下载     https://github.com/MSOpenTech/redis     可看到当前可下载版本:redis2.6          下载windows平台文件:             ...

项目引入sleuth链路追踪,redis报错:Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path resource

项目引入sleuth链路追踪,redis报错:Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path resource

    springCloud项目中,引入sleuth之后,报:Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path res...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。