百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

「Redis 系列 01」Redis 基本概述与安装

mhr18 2024-11-26 12:05 19 浏览 0 评论

人生有涯,学海无涯

Redis 作为当下主流的 NoSQL 数据库,已经成为企业级开发不可或缺的一个重要组件了,现在大大小小的项目都会用到它,并且最新的版本已经达到 5.x 了。从这篇文章开始,我们会用一个系列的文章详细的给大家介绍一下 Redis 底层实现和使用场景,希望能帮助大家更好的使用。

01、概述

本篇是 Redis 系列的第一篇文章,我们主要对 Redis 做一下概述,以及详细的安装教程和简单使用,后面的文章会一步一步带大家走进 Redis 的细节部分。

1.1 Redis 简介

学任何一个技术,我们首先看的必定是官网,Redis 的官网是这样介绍的

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.

大致的意思是说:Redis 是一个开放源码(基于 BSD 协议)的内存存储数据结构,被用作于数据库,缓存。它支持数据结构有字符串,哈希,列表,集合,排序集合,位图,超日志,GEO。

1.2 特性

  1. 完全基于内存,大多数请求都是内存操作,非常快速;
  2. 数据结构简单,操作简单;
  3. 采用单线程,避免了不必要的上下文切换和竞争条件,不存在多进程或者多线程的切换;
  4. 使用多路复用 I/O 模型,非阻塞 IO;
  5. 多客户端支持,高可用架构。

02、安装

方式一:采用 Docker 来安装 Redis

  1. 搜索镜像 docker search redis:使用该命令可以搜索出所有的 redis 镜像列表
  2. 如果没有特殊版本需求,可以使用:docker pull redis 命令直接安装最新版本 Redis
  3. 下载过后使用 docker images | grep redis 命令查看已经获取到的镜像
  4. 启动 Redis 服务:docker run --name redis -d -p 6379:6379 redis --requirepass "123321"docker run:表示创建并运行一个容器;--name redis:表示创建一个名字为 redis 的容器;-d:表示后台运行;-p 6379:6379:表示将宿主机的 6379 端口映射到容器的 6379 端口上;redis:表示依赖的镜像名称;--requirepass "123321" :表示设置密码
  5. 查看运行的Redis 实例

方式二:下载编译安装

  1. 进入指定目录/usr/local/ 执行如下命令1234wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar -xzvf redis-5.0.5.tar.gz cd redis-5.0.5 make install
  2. 编译安装完成后在 src 目录下会生成 redis-server, redis-cli 相关命令,同时在/usr/local/bin也会存在,如果没有可以拷贝进去,正常是会有的。
  3. 修改 redis.conf 配置文件配置后台启动:daemonize yes;调整端口,如果需要的话:port 6379;设置 redis 日志路径:logfile /var/log/redis.log;设置 redis 密码:requirepass "123321"; 密码一定要设置,不然会被攻击
  4. 使用配置文件启动 redis 服务端:redis-server redis.conf
  5. 客户端登录并测试至此,两种方式的安装都介绍完了,大家可以根据自己的情况采用一种方式安装学习。

03、常用场景

Redis 作为 NoSQL 数据库,主要的使用场景如下:

  1. 缓存:用 Redis 作为缓存框架,将热点数据,高频的访问数据存放到 Redis 中,加快访问速度,降低对底层数据库的依赖,从而提高并发和性能。这个场景是最常用的一个场景,而且 Redis 本身提高过期时间和相应的淘汰策略,这个后面我们会讲到。
  2. 计数统计:Redis 本身支持加一和减一命令,单线程情况下可以帮我们做简单的计数功能,可以累积计算 pv 值,也很实用。
  3. 排序和集合操作:Redis 的 list 和 zset 数据结构可以用于需要实现排序如排行榜,最新评论,或者获取共同好友等场景。
  4. 消息队列:Redis 提供的 发布订阅(PUB/SUB)和 阻塞队列的功能,能够满足基本的消息队列的使用。
  5. 分布式锁:在分布式环境下,经常会使用的分布式锁,基于 Redis 的SET resource_name my_random_value NX PX 30000 也可以实现高性能的分布式锁。Redis 实现的分布式锁性能比数据库以及 zookeeper 实现的要高,可以参考之前的文章分布式下必备神器之分布式锁

04、高级特性

Redis 有很多高级的特性,这里先简单罗列一下,后面的系列文章会详细介绍:

  1. 支持管道可以批量执行 Redis 命令,生产中我们有时候需要处理大量的 Redis 数据,这个时候如果采用单个命令执行的话会非常耗时间,这个时候我们就可以生产符合 Redis 规则的文件,进行批量的处理,十分方便。
  2. 内存回收策略和 Key 的过期策略Redis 的内存回收和 Key 的过期策略,内部有多种不同方案的实现,后面我们会详细谈到。
  3. 支持 lua 脚本;
  4. Redis 的事物;Redis 的事物跟我们熟知的关系型数据库的事物有什么不同和区别呢?我们会面文章也会介绍。

05、总结

这篇文章是 Redis 系列文章的第一篇,简单的给大家介绍了 Redis 的一些概述和基本特性,以及两种安装方式和一些常用的使用场景,下篇文章会开始介绍一些基本的命令使用以及逐渐的深入分析。大家在使用 Redis 的时候有什么坑或者心得可以分享的吗?欢迎到我们《Java 极客技术》知识星球来大家一起讨论,一起进步。

相关推荐

数据库DELETE 语句,还保存原有的磁盘空间

MySQL和Oracle的DELETE语句与数据存储MySQL的DELETE操作当你在MySQL中执行DELETE语句时:逻辑删除:数据从表中标记为删除,不再可见于查询结果物理...

线程池—ThreadPoolExecutor详解(线程池实战)

一、ThreadPoolExecutor简介在juc-executors框架概述的章节中,我们已经简要介绍过ThreadPoolExecutor了,通过Executors工厂,用户可以创建自己需要的执...

navicat如何使用orcale(详细步骤)

前言:看过我昨天文章的同鞋都知道最近接手另一个国企项目,数据库用的是orcale。实话实说,也有快三年没用过orcale数据库了。这期间问题不断,因为orcale日渐消沉,网上资料也是真真假假,难辨虚...

你的程序是不是慢吞吞?GraalVM来帮你飞起来性能提升秘籍大公开

各位IT圈内外的朋友们,大家好!我是你们的老朋友,头条上的IT技术博主。不知道你们有没有这样的经历:打开一个软件,半天没反应;点开一个网站,图片刷不出来;或者玩个游戏,卡顿得想砸电脑?是不是特别上火?...

大数据正当时,理解这几个术语很重要

目前,大数据的流行程度远超于我们的想象,无论是在云计算、物联网还是在人工智能领域都离不开大数据的支撑。那么大数据领域里有哪些基本概念或技术术语呢?今天我们就来聊聊那些避不开的大数据技术术语,梳理并...

秒懂列式数据库和行式数据库(列式数据库的特点)

行式数据库(Row-Based)数据按行存储,常见的行式数据库有Mysql,DB2,Oracle,Sql-server等;列数据库(Column-Based)数据存储方式按列存储,常见的列数据库有Hb...

AMD发布ROCm 6.4更新:带来了多项底层改进,但仍不支持RDNA 4

AMD宣布,对ROCm软件栈进行了更新,推出了新的迭代版本ROCm6.4。这一新版本里,AMD带来了多项底层改进,包括更新改进了ROCm的用户空间库和AMDKFD内核驱动程序之间的兼容性,使其更容易...

难怪打不过英伟达CUDA!AMD ROCm开发平台仍然不支持RDNA 4

AMD发布了最新版本的ROCm6.4开发平台,不过奇怪的是,仍然没有加入对RDNA4架构产品的支持,只是新加入了RadeonProW780048GB显存版本,它仍然是RDNA3架构产品。R...

Java后端学习路线是什么?(java后端学到什么程度)

关于Java后端(SpringBoot为主)学习路线:一、Java基础阶段编程语言基础掌握基本数据类型(如int、double、char等)、变量、常量的定义和使用。理解运算符(算术、关...

Oracle与Nextcloud合作,推出主权云上的安全协作平台

据thefastmode网6月18日报道,Oracle与Nextcloud达成合作,将NextcloudHub引入Oracle云基础设施(OCI),为政府和企业客户提供安全协作平台。Nextclou...

主打的是回顾与展望?解读美国陆军250周年庆丨武装

2025年6月14日,美国陆军250周年庆(Armycelebrates250thbirthday)及阅兵活动在美国弗吉尼亚州阿灵顿县和华盛顿特区隆重举行,以纪念美国陆军成立(1775年6月14...

微服务不如单体架构?那是你不会用!

一、我为什么选择微服务架构?众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提...

从杯垫到塔罗牌,这些“非主流品类”才是真风口!

说到卖小玩意,想到的不是薄利多销就是卷价格战,毕竟这种模式在国内已经根深蒂固,但跨境电商给了每一位想要做小品类赚大钱的卖家一个机会,从杯垫到塔罗牌,越来越多人,开始靠一些你日常根本不会注意到的小玩意,...

Raid磁盘阵列更换磁盘时另一块盘离线恢复案例

Raid磁盘阵列更换磁盘时另一块盘离线恢复案例(v7000存储数据恢复)【故障描述】客户设备型号为IBMV7000存储,架构为AIX+oracle+V7000存储阵列柜,需要恢复的数据主要存放在阵列...

sql还有类型,大牛黑客必学,你也必须了解

上节课讲到sql注入的基础,上节课讲到的注入方法是联合查询,也称之为”显错注入”,当然,sql注入的方式不单单只是显错注入,还有不同的类型。根据数据库类型;一种是整形注入,一种是字符型注入。其实sql...

取消回复欢迎 发表评论: