Redis安装与使用

目录

1、介绍

1、redis的特点:

2、缓存

2、安装Redis

1、安装单机版redis

2、redis-cli命令参数

3、清空数据库的两种方式和作用域: 

4、redis的增删查改命令

5、redis的查看所有分类命令

6、redis过期时间与控制键的行为

7、redis的相关工具


1、介绍

redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库

redis的官网:redis.io 注:域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地

1、redis的特点:

1.丰富的数据结构  -----string,list,set,zset,hash等数据结构的存储
2.支持持久化
3.支持事务   ---------------事务是指“一个完整的动作,要么全部执行,要么什么也没有做”。
4.支持主从

2、缓存

1.类型
  1).数据缓存 
  2).页面缓存(Smarty) 
在开发网站的时候如果有一些数据在短时间之内不会发生变化,而它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,就把这些数据放到一个读取速度更快的介质上(或者是通过较少的计算量就可以获得该数据) ,该行为就称作对该数据的缓存。 
该介质可以是文件、数据库、内存,内存经常用于数据缓存
​
2.形式
页面缓存经常用在内存管理系统里边 
数据缓存经常用在页面的具体数据里边 
​
redis和memcache比较 
  1).Redis不仅仅支持简单的Key-Value类型的数据,同时还提供了list,set,zset,hash等数据结构的存储 
  2).Redis支持master-slave(主-从)模式应用 
  3).Redis支持数据的持久化

2、安装Redis

1、安装单机版redis

[root@localhost ~]# wget http://download.redis.io/releases/redis-5.0.10.tar.gz   #下载redis
[root@localhost ~]# tar xzf redis-5.0.10.tar.gz -C /usr/local                 #解压
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv redis-5.0.10/ redis
[root@localhost local]# cd redis/
[root@localhost redis]# yum install -y gcc make                               #安装编译工具
[root@localhost redis]# make
注:如果报错请将刚才解压的安装包删除掉,再次重新解压并进行make安装即可。

[root@localhost redis]# /usr/local/redis/src/redis-server #启动命令,即redis-server,这种用不习惯可以参照下面得配置systemctl启动。
#配置简单方式管理命令
[root@localhost ~]# vim /etc/profile   #配置文件末尾加入下述环境变量得配置
PATH="/usr/local/redis/src:$PATH"
[root@localhost ~]# source /etc/profile  #重新加载系统全局配置文件
#测试使用管理redis命令
[root@localhost ~]# redis-server
 
#以下为自定义参数和配置systemctl启动方式等
[root@localhost ~]# cd /usr/local/redis
[root@localhost redis]# cp redis.conf redis.conf.bak    #备份配置文件
[root@localhost redis]# vim redis.conf         #修改如下
bind 127.0.0.1                   #Redis 服务器监听的网络接口地址
daemonize yes                  #开启后台模式将on改为yes
timeout 300                   #连接超时时间
port 6379                          #端口号
dir /data/application/redis/data  #本地数据库存放持久化数据的目录该目录-----需要存在
pidfile /var/run/redis_6379.pid   #定义pid文件
logfile /var/log/redis.log        #定义log文件
daemonize yes                      #启动后自动放到后台
requirepass 1234                    #设置密码为1234              
#创建存放数据的目录
[root@redis-master redis]# mkdir -p /data/application/redis/data



#配置redis为systemctl启动
[root@redis-master redis]# cd /lib/systemd/system
[root@redis-master system]# vim redis.service
[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf  --daemonize no
ExecStop=/usr/local/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]
WantedBy=multi-user.target


=====================
参数详解:
• [Unit] 表示这是基础信息 
• Description 是描述
• After 是在那个服务后面启动,一般是网络服务启动后启动

• [Service] 表示这里是服务信息 
• ExecStart 是启动服务的命令
• ExecStop 是停止服务的指令

• [Install] 表示这是是安装相关信息 
• WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
===================
启动服务:
[root@localhost system]# systemctl daemon-reload #重新加载 systemd 的配置文件
[root@localhost system]# systemctl start redis   #启动

[root@localhost system]# systemctl start redis   #停止
[root@localhost system]# systemctl restart redis #重启

本次我们没有使用systemctl得形式启动,而是配置环境变量,这样使用redis命令更方便

2、redis-cli命令参数

redis-cli 是 Redis 提供的命令行工具,用于与 Redis 服务器进行交互。它支持多种参数来控制连接方式、执行命令以及显示输出等。以下是常用的 redis-cli 参数:

  1. 连接参数

    • -h <hostname>:指定连接的 Redis 服务器主机名或 IP 地址。
    • -p <port>:指定连接的 Redis 服务器端口号,默认为 6379。
    • -a <password>:指定连接的 Redis 服务器密码。如果 Redis 服务器设置了密码保护,需要使用该参数提供密码进行连接。
    • -s <socket>:指定连接的 Unix 套接字文件路径。适用于本地连接 Unix 套接字的情况。
  2. 交互和显示参数

    • -n <db-number>:选择 Redis 数据库的编号,默认为 0。Redis 支持多个数据库,通过编号区分。
    • --raw:以原始格式显示回复内容,不进行任何格式化处理。
    • -r <repeat>:指定重试连接次数,默认为 10 次。
    • --csv:以 CSV 格式显示输出。
  3. 输入输出参数

    • -i <file>:从指定文件中读取命令,并将其发送到 Redis 服务器执行。
    • -x:从标准输入读取命令,并将其发送到 Redis 服务器执行。适合于管道和脚本操作。
  4. 其他参数

    • -v--version:显示 redis-cli 的版本信息。
    • -h--help:显示帮助信息,列出所有可用的 redis-cli 参数和选项。

登录数据库

#启动redis
redis-server redis.conf
或
redis-server redis.conf &      #这个命令是因为配置文件中没有配置打开daemonize yes这个是启动后自动放到后台得参数

#关闭redis
redis-cli -h 192.168.226.21 SHUTDOWN   #如何有密码需要-a指定密码,-p指定定义得端口
[root@localhost redis]# redis-cli -h 192.168.226.21 -p 6379 -a 1234 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.226.21:6379> ping                 
PONG
192.168.226.21:6379> set name newrain     #设置key--name,并设置值
OK
192.168.226.21:6379> get name             #获取到key
"newrain"
192.168.226.21:6379> 


单机版redis已经部署完成。将ip和端口发给开发就可以了。

3、清空数据库的两种方式和作用域: 

FLUSHDB

FLUSHDB 命令用于清空当前选择的数据库(默认为数据库 0)中的所有键。该命令不会影响其他数据库的数据,只清空当前选择的数据库。

例:

FLUSHDB

FLUSHALL

FLUSHALL 命令用于清空 Redis 中的所有数据库的数据,即清空所有数据库中的所有键。

FLUSHALL

注意:使用 FLUSHALL 命令将会删除 Redis 中所有数据库的所有数据,包括默认的数据库 0 和可能存在的其他数据库。请谨慎使用,因为该操作不可撤销。

4、redis的增删查改命令

  • 增加(添加)操作

    • 设置键值对(Set)
      SET key value
      这个命令用于设置指定键的值为给定的字符串值。
  • 删除操作

    • 删除键(Delete)
      DEL key [key ...]
      这个命令用于删除一个或多个指定的键。
  • 查询操作

    • 获取键的值(Get)
      GET key
      这个命令用于获取指定键的值。
  • 修改操作

    • 更新键的值(Set)
      SET key new_value
      这个命令可以用于更新现有键的值,或者用于设置新的键值对。
  • 其他相关操作

    • 检查键是否存在(Exists)

      EXISTS key

      这个命令用于检查指定的键是否存在于 Redis 中。

    • 设置键的过期时间(Expire)

      EXPIRE key seconds

      这个命令用于为指定键设置过期时间,单位为秒。过期时间到期后,键会自动被删除。

5、redis的查看所有分类命令

  • 查看所有键

    KEYS *

    这个命令会列出当前数据库中所有的键。请注意,KEYS * 在生产环境中执行时可能会影响 Redis 的性能,因为它会遍历所有键。在生产环境中推荐使用 SCAN 命令来逐步迭代获取键。

  • 查看字符串类型数据

    GET key

    用于获取指定键的值,适用于存储在 Redis 中的字符串数据。

  • 查看哈希表类型数据

    HGETALL key

    获取指定哈希表键中的所有字段和值。

  • 查看列表类型数据

    LRANGE key start stop

    获取列表键中指定范围内的所有元素。

  • 查看集合类型数据

    SMEMBERS key

    获取集合键中的所有成员。

  • 查看有序集合类型数据

    ZRANGE key start stop [WITHSCORES]

    获取有序集合键中指定范围内的所有成员,可以选择是否包含成员的分数。

  • 查看数据类型

    TYPE key

6、redis过期时间与控制键的行为

EX 参数:  表示过期时间的单位是秒(Seconds)。当使用 EX 参数设置键的过期时间时,指定的时间值将以秒为单位计算。

[root@localhost system]# redis-cli -h 192.168.226.21
192.168.226.21:6379> ping
PONG
192.168.226.21:6379> set name zhangsan ex 3   #定义一个键和数据,设置3秒过期
OK
192.168.226.21:6379> get name                 #3秒后查看不到了
(nil)
192.168.226.21:6379> set name zhangsan ex 10  #这里就定义成10秒过期
OK  
192.168.226.21:6379> get name                 #10秒内查看就会在
"zhangsan"

PX 参数:  表示过期时间的单位是毫秒(Milliseconds)。当使用 PX 参数设置键的过期时间时,指定的时间值将以毫秒为单位计算。

192.168.226.21:6379> set name lisi px 1000   #定义这个键和数据1000毫秒,即1秒过期
OK
192.168.226.21:6379> get name
(nil)
192.168.226.21:6379> set name lisi px 10000  #定义这个键和数据10000毫秒。即10秒过期
OK
192.168.226.21:6379> get name                 #10000毫秒内查看就能看到
"lisi" 

NX 参数: 表示只在键不存在时才设置键的值(Not eXists)。如果指定了 NX 参数,并且键不存在,那么 SET 命令会将键设置为指定的值。 防止覆盖的参数。

192.168.226.21:6379> set id 1000 nx   #id键不存在则赋值
OK
192.168.226.21:6379> set id 2000 nx   #id已经存在了,就不能赋值,防止覆盖数据
(nil)
192.168.226.21:6379> get id
"1000"

XX 参数:  表示只在键已经存在时才设置键的值(eXists)。如果指定了 XX 参数,并且键已经存在,那么 SET 命令会更新键的值。 用于覆盖数据。

192.168.226.21:6379> set txt 2000 xx    #给不存在txt键赋值,但是txt原本不存在,则赋值失败
(nil)
192.168.226.21:6379> set id 2000 xx     #给前面创建过的存在的键赋值,则可以
OK
192.168.226.21:6379> get id
"2000"

7、redis的相关工具

./redis-benchmark     #用于进行redis性能测试的工具 
./redis-check-dump    #用于修复出问题的dump.rdb文件   
./redis-cli           #redis的客户端
./redis-server        #redis的服务端
./redis-check-aof     #用于修复出问题的AOF文件
./redis-sentinel      #用于集群管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/746301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何成为专业的 .NET 开发人员

如今&#xff0c;网上有大量信息&#xff0c;找到正确的信息并非易事。当你开始编程之旅并希望获得全面的指南时&#xff0c;最好寻找一个可以指导你完成整个过程的指南。 本文将帮助您制定一份路线图&#xff0c;告诉您什么是重要的以及什么是需要学习的. 一.一切从软件基础…

CSS|03 尺寸样式属性文本与字体属性

尺寸样式属性 height:元素高度height的值&#xff1a;auto 自动length 使用px定义高度% 基于包含它的块级对象的百分比高度 width&#xff1a;元素的宽度width的值与height一样span标签可以设置宽度、高度吗&#xff1f; 答&#xff1a;不可以&#xff0c;因为span标签是一个行…

机器人控制系列教程之动力学建模(1)

简介 机器人动力学是对机器人机构的力和运动之间关系与平衡进行研究的学科。机器人动力学是以机器人运动为基础&#xff0c;研究在运动过程中连杆与连杆之间、连杆与工件之间力或力矩等关系。 分类&#xff1a; 根据研究方向的不同&#xff0c;机器人的动力学分析也分为正、逆…

华为OD机试 - 掌握单词个数(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

一文搞懂Linux多线程【下】

目录 &#x1f6a9;多线程代码的健壮性 &#x1f6a9;多线程控制 &#x1f6a9;线程返回值问题 &#x1f6a9;关于Linux线程库 &#x1f6a9;对Linux线程简单的封装 在观看本博客之前&#xff0c;建议大家先看一文搞懂Linux多线程【上】由于上一篇博客篇幅太长&#xff0c;为…

任务5.1 初识Spark Streaming

实战概述&#xff1a;使用Spark Streaming进行词频统计 1. 项目背景与目标 背景: Spark Streaming是Apache Spark的流处理框架&#xff0c;用于构建可伸缩、高吞吐量的实时数据处理应用。目标: 实现一个实时词频统计系统&#xff0c;能够处理流式数据并统计文本中的单词出现频…

网易严选礼品卡有什么用?

网易严选的礼品卡可以在网易商城里买东西 但是现在好多人买东西基本上都用的是淘宝京东之类的 很少会有人用网易吧 但是最近我朋友送了我几张网易的卡&#xff0c;我自己也用积分兑换一张&#xff0c;一直不知道怎么用 最后还是在收卡云上转让出去了&#xff0c;价格高不说…

yolo-world使用自己数据集训练

YOLO-World下载&#xff1a; https://github.com/AILab-CVC/YOLO-World/tree/master 1.数据准备 数据格式COCO格式即可 2.配置文件修改 configs/finetune_coco/yolo_world_v2_l_vlpan_bn_sgd_1e-3_40e_8gpus_finetune_coco.py &#xff08;1&#xff09; 模型下载路径&#xf…

vue3-openlayers 要素聚合(cluster)、icon聚合

本篇介绍一下使用vue3-openlayers 要素聚合&#xff08;cluster&#xff09;&#xff0c;icon聚合 1 需求 要素聚合&#xff08;cluster&#xff09;&#xff0c;icon聚合 2 分析 使用ol-source-cluster 4 实现 <template><ol-map:loadTilesWhileAnimating"…

gin数据解析和绑定

一. Json数据解析和绑定 html文件&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta htt…

Java数据脱敏

数据脱敏 敏感数据在存储过程中为是否为明文, 分为两种 落地脱敏: 存储的都是明文, 返回之前做脱敏处理不落地脱敏: 存储前就脱敏, 使用时解密, 即用户数据进入系统, 脱敏存储到数据库中, 查询时反向解密 落地脱敏 这里指的是数据库中存储的是明文数据, 返回给前端的时候脱…

带货直播部门的薪酬提成还有绩效考核怎么做!

直播带货公司一大片&#xff0c;老板一定要控制好自己利润很好的时候分钱的这个欲望&#xff0c;因为不怕分钱&#xff0c;就怕分错了之后收不回来。举例&#xff1a;你今年赚了 1, 000 万&#xff0c;然后你的运营或者你的投手是不是你感觉他的贡献很大&#xff0c;这时候你就…

时延降低 50%,小红书图数据库如何实现多跳查询性能大幅提升

多跳查询为企业提供了深入的数据洞察和分析能力&#xff0c;它在小红书众多在线业务中扮演重要的角色。然而&#xff0c;这类查询往往很难满足稳定的 P99 时延要求。小红书基础架构存储团队针对这一挑战&#xff0c;基于大规模并行处理&#xff08;MPP&#xff09;的理念&#…

【已解决】Pycharm:卡顿解决方案汇总

可能原因&#xff1a; 1、内存少 2、加载慢 3、文件多 4、硬件老 解决方案&#xff1a; 本机测试在 MAC&#xff0c;Windows、Linux也有相应的设置&#xff0c;请自行查询。 一、调整Pycharm使用内存 Help - Change Memory Settings 二、取消勾选 重复打开上次项目 Pych…

什么是Arkose Labs挑战及其解决方法

Arkose Labs挑战是一种复杂的机制&#xff0c;旨在验证用户是真正的人类&#xff0c;而不是自动化的机器人或脚本。这一挑战在维护在线服务的安全性和完整性方面发挥着关键作用&#xff0c;通过防止欺诈活动并确保只有真实用户才能访问某些功能。 目录 什么是Arkose Labs挑战&a…

地理空间数据格式GeoJSON扫盲,在CesiumJS中如何加载。

Hi&#xff0c;我是贝格前端工场&#xff0c;GIS已经越来越多的应用在可视化大屏中了&#xff0c;开发GIS类应用就少不了地理空间数据&#xff0c;本文介绍一下数据GeoJSON数据格式。 一、什么是GeoJSON数据格式&#xff0c;在GIS开发中有什么作用 GeoJSON是一种基于JSON&…

T100M2S2 M.2高清2路SDI采集卡

产品简介&#xff1a; 同三维T100M2S2一款支持全高清1080P 60HZ高清M2型两路SDI采集卡&#xff0c;板卡采用了高速的M.2-PCI-E接口&#xff0c;可实现1080P全实时不丢帧60帧传输。支持高清SDI输入&#xff0c;满足各种用户的需求&#xff0c;其最高分辨率可以实现1920&time…

文生视频模型Sora刷屏的背后的数据支持

前言&#xff1a;近日&#xff0c;OpenAI的首个文生视频模型Sora横空出世&#xff0c;引发了一波Sora热潮。与其相关的概念股连续多日涨停&#xff0c;多家媒体持续跟踪报道&#xff0c;央视也针对Sora进行了报道&#xff0c;称这是第一个真正意义上的视频生成大模型。 01 …

Java医院绩效考核系统源码:考核目标、考核指标、考核方法、考核结果与奖惩措施

Java医院绩效考核系统源码&#xff1a;考核目标、考核指标、考核方法、考核结果与奖惩措施 随着我国医疗体制的改革广大人民群的看病难&#xff0c;看病贵的问题一直没有得到有效地解决医疗费用的上涨&#xff0c;远远大于大多数家庭收入的增长速度。医院的改革已经势在必行&am…

早餐店小程序开发

在快节奏的城市生活中&#xff0c;早餐对于许多人来说是一天中最重要的一餐。然而&#xff0c;传统的早餐店在经营过程中常常面临客流量不稳定、服务效率低下等问题。为了解决这些问题&#xff0c;越来越多的早餐店老板开始寻求利用科技手段提升经营效率。早餐店小程序作为一种…