当前位置: 首页 > news >正文

Redis简单介绍与安装应用

        在当今的互联网时代,数据的快速存取和处理变得至关重要。Redis,作为一种高性能的键值存储系统,已经成为许多开发者和企业的首选。本文将简要介绍Redis的基本概念、工作原理以及其在实际应用中的一些典型用例。

一、简介

1)概念

        Redis(Remote Dictionary Server)是一个开源的 NoSQL 数据库,它是基于内存的,因此读写速度快,适合用作缓存。它以其卓越的性能和丰富的数据结构支持而闻名,包括字符串、哈希、列表、集合、有序集合等。NoSQL 即 Not-Only SQL,指的是不仅仅使用 SQL 语言作为数据库查询语言的数据库管理系统。

 2)常见的 NoSQL 数据库

  • KV键值对类型:Redis
  • 列式存储:Hbase
  • 文档类型存储:MongoDB
  • 图形化存储:Neo4J

 二、Redis的特点

  1. 高性能:Redis能够处理大量的并发请求,读写速度极快,因为它的数据存储在内存中。
  2. 持久化:虽然Redis是内存数据库,但它提供了持久化选项,可以将内存中的数据保存到磁盘上,以防系统故障。
  3. 原子性:Redis的所有操作都是原子性的,这意味着多个操作可以组合在一起作为一个单独的原子操作执行。
  4. 丰富的数据类型:Redis支持多种数据类型,这使得它能够轻松处理各种复杂的数据结构。
  5. 可扩展性:Redis支持主从复制和哨兵系统,可以轻松实现数据的分布式存储和高可用性。

三、Redis工作原理

        Redis采用事件驱动的架构,单线程处理所有客户端请求。它通过事件循环监听文件事件(客户端连接、命令请求)、时间事件(过期键清理)和定时器事件(客户端超时请求)。

四、Redis 安装

redis官方只给了linux版本的下载,并没有windows,网络上流传的windows版本是微软团队写的。

通过网盘分享的文件:redis-5.0.4.tar.gz  提取码: dze4

1)安装 

1、上传并解压
tar -zxvf redis-5.0.4.tar.gz -C /opt/installs/
2、安装GCC环境
yum安装需要网络环境,必须能够联网才行
yum -y install gcc-c++
3、编译我们的redis源代码
cd /opt/installs/redis-5.0.4
进行 make     在 src目录下
4、进行安装(可以选择) make install 
默认安装到了 /usr/local/bin 目录下
redis-server   启动redis的服务器
redis-cli      启动redis客户端


说明一下:因为执行程序已经在 /usr/local/bin目录下了,所有不需要配置环境变量

环境变量就是path路径,path路径直接决定了一个命令是否可以找到。

2)修改配置文件

启动redis
启动服务器:  redis-server    这个启动是明着启动
启动客户端:  redis-cli     连接服务器的客户端,用于编写命令的
退出:
redis-cli  退出 quit
redis-server 退出  如果是明着启动,ctrl + C

redis服务可以在后台运行。
修改配置文件:
redis.conf

将这个配置文件复制到  /usr/local/bin 下面
cp /opt/installs/redis-5.0.4/redis.conf /usr/local/bin/

启动的时候,指定conf 一起启动
redis-server /usr/local/bin/redis.conf

修改redis.conf 就直接使用 /usr/local/bin/redis.conf 即可

这里修改为你自己的虚拟机IP地址

查看redis进程:

ps -ef|grep redis

 关闭redis的后台进行:
1、直接kill       kill -9  进程号
2、redis-cli -h 192.168.32.129 shutdown
    假如你在redis.conf 下指定了 bind 这个参数,在关闭的时候,需要添加  -h IP地址,如果使用的是默认的 bind 127.0.0.1 
   直接使用 redis-cli shutdown

 因为在redis.conf 下配置了bind IP 所以,连接的时候需要带上 IP地址

这里修改为你自己的虚拟机IP地址

redis-cli -h 192.168.52.129

3)设置密码(根据需要)

redis是可以设置密码的:

/usr/local/bin/redis.conf

假如有密码,连接的时候需要如下命令:

redis-cli -h 192.168.10.101 -p 6379 -a 123456如果关闭需要使用如下命令:
redis-cli -h 192.168.10.101 -p 6379 -a 123456 shutdown

五、Redis 基本使用

1)连接 Redis

使用 datagrip 连接 redis:

2)操作数据库

Redis 默认有 16 个数据库,可以通过 select 命令切换数据库。

3)基本命令

先说一下key 这个命令的用法:

keys *

查看当前库的所有键

exists <key>

判断某个键是否存在

type <key>

查看键的类型

del <key>

删除某个键

expire <key><seconds>

为键值设置过期时间,单位秒

ttl <key>

查看还有多久过期,-1表示永不过期,-2表示已过期

dbsize

查看当前数据库中key的数量

flushdb

清空当前库

flushall

通杀全部库

 

六、Redis 数据类型

1)String —— 字符串类型

字符串类型的value值,可以占用512M的空间,所以可以存储很多的数据。

get <key>

查询对应键值

set <key><value>

添加键值对

append <key><value>

将给定的<value>追加到原值的末尾

strlen <key>

获取值的长度

setnx <key><value>

只有在key 不存在时设置key的值,SET if Not eXists

incr <key>

将key中存储的数字值增1只能对数字值操作,如果为空,新增值为1

decr <key>

将key中存储的数字值减1只能对数字之操作,如果为空,新增值为-1

incrby /decrby <key> 步长

将key中存储的数字值增减,自定义步长

mset <key1><value1><key2><value2>

同时设置一个或多个key-value对

mget <key1><key2><key3>

同时获取一个或多个value

msetnx <key1><value1><key2><value2>

同时设置一个或多个key-value对,当且仅当所有给定的key都不存在

getrange <key> <起始位置> <结束位置>

获得值的范围,类似java中的substring

setrange <key> <起始位置> <value>

用<value>覆盖<key>所存储的字符串值,从<起始位置>开始

setex <key> <过期时间> <value>

设置键值的同时,设置过去时间,单位秒

getset <key><value>

以新换旧,设置了新值的同时获取旧值

2) List —— 散列类型

有序的(插入的时候有序),底层是一个双向链表

 

3) Set —— 列表类型

Set的特点是无序不重复的

sadd <key><value1><value2> ....

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

smembers <key>

取出该集合的所有值。

sismember <key><value>

判断集合<key>是否为含有该<value>值,有返回1,没有返回0

scard <key>

返回该集合的元素个数。

srem <key><value1><value2> ....

删除集合中的某个元素。

spop <key>

随机从该集合中吐出一个值。

srandmember <key><n>

随机从该集合中取出n个值。不会从集合中删除

sinter <key1><key2>

返回两个集合的交集元素。

sunion <key1><key2>

返回两个集合的并集元素。

sdiff <key1><key2>

返回两个集合的差集元素。

4) Hash —— 集合类型

Redis hash 是一个键值对集合

Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

hset <key><field><value>

<key>集合中的 <field>键赋值<value>

hget <key1><field>

从<key1>集合<field> 取出 value

hmset <key1><field1><value1><field2><value2>...

批量设置hash的值

hexists key <field>

查看哈希表 key 中,给定域 field 是否存在。

hkeys <key>

列出该hash集合的所有field

hvals <key>

列出该hash集合的所有value

hincrby <key><field><increment>

为哈希表 key 中的域 field 的值加上增量 increment

hsetnx <key><field><value>

将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在

 

 

 

5) Zset(Sorted Set)—— 有序集合类型

zrange <key><start><stop> [WITHSCORES]

返回有序集 key 中,下标在<start><stop>之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。

zrangebyscore key min max withscores

返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。

zrevrangebyscore key max min withscores

同上,改为从大到小排列。

zincrby <key><increment><value>

为元素的score加上增量

zrem <key><value>

删除该集合下,指定值的元素

zadd <key><score1><value1><score2><value2>...

将一个或多个 member 元素及其 score 值加入到有序集 key 当中

zcount <key><min><max>

统计该集合,分数区间内的元素个数

zrank <key><value>

返回该值在集合中的排名,从0开始。

 

五大基本数据类型,实战过程中String最实用。

七、资源链接

  • Redis 下载链接:https://download.redis.io/releases/
  • 通过网盘分享的文件:redis-5.0.4.tar.gz  提取码: dze4
  • Redis 中文学习网站:Redis中文网

        通过这篇文章,我们初步了解了 Redis 的基本概念、安装方法和基本操作,以及它的数据类型和一些常用命令。Redis 作为一个功能强大的 NoSQL 数据库,非常适合用作缓存系统,提高应用性能。


http://www.mrgr.cn/news/34265.html

相关文章:

  • 【Pikachu】目录遍历实战
  • kafka 生产经验——数据积压(消费者如何提高吞吐量)
  • 基于Spring Boot与Redis的令牌主动失效机制实现
  • 【Chapter 3】Machine Learning Classification Case_Prediction of diabetes-XGBoost
  • 接口类和抽象类在设计模式中的一些应用
  • 【话题讨论】AI赋能电商:创新应用与销售效率的双轮驱动
  • NEMESIS: NORMALIZING THE SOFT-PROMPT VECTORS OF VISION-LANGUAGE MODELS
  • 如何在CentOS 7上升级KVM内核?
  • Fragment两种切换方式
  • 1. IP地址介绍
  • 2024年信息安全企业CRM选型与应用研究报告
  • 辛普森积分公式
  • CCPQT:2024年10月珠海学术会议
  • C#常用数据结构栈的介绍
  • 编译uboot出现 multiple definition of `yylloc‘ 问题
  • 探索未来科技前沿:云计算与大数据的深度融合
  • 基于TCP协议的网络通信
  • Android OpenGLES2.0开发(二):环境搭建
  • 塑料清洗加工污水处理具体流程和效果说明
  • 为什么越来越多的网工运维转行网络安全?_idc运维转网络安全工程师_系统运维转行网安
  • 【行为树】01-第一棵树
  • 商标管理软件如何助力企业实现商标数字化管理?
  • 怎么录屏?免费录屏软件推荐,电脑屏幕与摄像头内容录制与分享指南
  • tomcat项目【jvm内存溢出】
  • 大数据新视界 --大数据大厂之 Vue.js 与大数据可视化:打造惊艳的数据界面
  • Spring AOP - 注解方式实现