Redis的相关基础了解

1. 什么是nosql

nosql【not only sql】不仅仅是sql。所有非关系型数据库的统称,除去关系型数据库之外都是非关系数据库

2. NOSQL和RDBMS的区别

RDBMS——关系型数据库的通常

  • 高度组织化 结构化 数据
  • 结构化查询语言(SQL) sql语句
  • 数据和关系都存储在单独的表中
  • 数据操纵语言DML,数据定义语言DDL
  • 严格的一致性——事务
  • 基于事务
  • MySQL基于磁盘

NOSQL_非关系型数据库的统称

  • 代表着不仅仅是SQL
  • 没有声明性查询语言。sql语句
  • 键—值对存储
  • 非结构化和不可预知的数据 value:字符串 对象 列表(list) 无序集合(set)
  • 高性能、高可用和可伸缩性。 适合搭建集群。——基于内存计算

3. 常用的NOSQL产品

redis[企业使用频率很高]

mongodb[了解]

hbase[适合大数据]

4. 什么是redis

网址:https://redis.io/

Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用于数据库、缓存和消息代理。Redis提供数据结构,例如:字符串、哈希、列表、集合,带范围查询的排序集合,位图,超日志,地理空间索引和流

Redis具有内置的复制【集群】,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久化【磁盘】,并通过Redis Sentinel 和 Redis Cluster 自动分区提供了高可用性【集群】

Redis是免费的软件,它可以用作数据库、缓存、消息代理。而且里面可以存储多种数据类型,并且提高了高可用机制

5. 如何安装Redis

redis软件语言是C语言——必须安装C的环境

5.1 准备环境

  1. 安装redis需要的环境
 yum install -y gcc-c++

若在此之前以及安装过Nginx,便可以省去此步骤,因为Nginx的安装同样需要安装C的环境

  1. 上官网下载redis源码安装包
redis-5.0.8.tar.gz

5.2 安装

1. 放入centos并解压

在这里插入图片描述

2. 解压该文件

tar -zxvf redis-7.2.3.tar.gz

3. 进入解压后的目录

cd redis-7.2.3

4. 编译安装

make install
自动配置环境变量

5. 启动redis服务器

redis-server redis.conf

redis-server:redis启动的脚本命令
redis.conf:redis配置文件的名

安装redis.conf这个配置来启动redis服务

6. 客户端连接redis服务器

客户端:——java代码——图形化界面——命令行的客户端

redis-cli -h redis服务器的ip -p 端口号

-h:如果不写默认为127.0.0.1
-p:默认6379

5.3 浅聊配置文件

配置文件:redis.conf

修改端口号:

默认6379

在这里插入图片描述

修改后台启动:这样就不必打开新窗口

在这里插入图片描述

运行远程访问:修改ip,以便图形化界面连接

在这里插入图片描述

学习过程中可以修改保护模式为no

我们在redis的配置文件中会遇到protected-mode,它直译为保护模式。

如果设置为yes,那么只允许我们在本机的回环连接,其他机器无法连接。

线上Redis服务,为了安全,我们建议将protected-mode设置为yes。

protected-mode设置为yes的情况下,为了我们的应用服务可以正常访问Redis,我们需要设置Redis的bind参数或者密码参数requirepass。

修改配置文件保存后,需要杀死redis进程再启动redis进程

5.4 安装图形化客户端

native可以【版本16.3.7】

idea可以【版本2023】

redisplus等

若不能正常连接,考虑以下情况:

  1. 防火墙
  2. 允许远程连接
  3. 保护机制没有关闭

在这里插入图片描述

6. 使用redis

6.1 key操作的命令

keys * :查看所有的key
del key ...:删除指定的key
expire key second:为指定的key设置过期时间
exists key :判断指定的key是否存在

6.2 数据库的命令

select n :选择库
flushdb:清空当前库
flushall:清空所有库

6.3 redis支持的数据类型

在线文档参考网址:http://www.redis.net.cn/order/

redis支持的数据类型种类很多,其中使用最频繁的:String字符串、Hash、List队列、Set无序集合,ZSet有序集合等

6.3.1 字符串类型

表示里面的value的类型为字符串类型。默认可以存放512M大小的字符串内容

在这里插入图片描述

常用

  1. set key value:存放字符串类型的数据
  2. get key:获取指定key对应的value值
  3. setex key second value:存放字符串类型的数据并设置过期时间
  4. setnx key value:如果指定的key存在,则不设置。不存在则存入
  5. incr key:为指定的key递增
  6. decr key:为指定的key递减

3可以用于验证码的有效期

5,6可用于统计显示点赞的数量

操作实例

在这里插入图片描述

对于命令3,实例中生存周期为30秒,下两张图显示了生存周期的倒计时

  • 图1

在这里插入图片描述

  • 图2

在这里插入图片描述

6.3.2 Hash类型

表示value值为Hash数据类型。表示value又是key-value形式

在这里插入图片描述

常用

命令均以h开头

  1. hset key field value:存储哈希类型的数据
  2. hget key field:获取存在哈希表中指定字段的value值
  3. hgetall key:获取在哈希表中指定key的所有字段和值
  4. hkeys key:获取所有哈希表中的字段
  5. hvals key:获取哈希表中所有的值
  6. hexists key field:查询哈希表key中,指定的字段是否存在

操作实例

在这里插入图片描述

6.3.3 list队列类型

list表示列表类型,表示value的值为list类型,插入有序且允许重复

在这里插入图片描述

常用

命令大多以l开头

  1. lpush key value value...:将一个或多个值插入到列表的头部
  2. lrange key start end:获取列表指定范围内的元素【前包后包
  3. linsert key before|after element value:在列表元素前或后插入元素
  4. lpop key:移除并获取列表中的第一个元素
  5. lset key index value:修改指定下标的值

操作实例

在这里插入图片描述

6.3.4 set无序不重复集合

set:无序,不可重复的集合

Redis 中的 Set 数据类型的内部编码方式有两种,分别是==intsethashtable==。这两种编码方式根据集合的大小和元素类型来选择,以最大程度地节省内存和提高性能。

intset(整数集合):

特点:intset 是 Redis 用于表示只包含整数值的集合的编码方式。它是一个有序的、紧凑的、不可重复的集合,内部使用整数表示元素值。

适用场景:intset 适用于存储小型整数集合,因为它在内存占用和性能方面都非常高效。当集合中的元素都是整数且数量较少时,Redis 会选择使用 intset 编码。

优点:
    节省内存:intset 采用紧凑的二进制存储,每个整数只占用所需的字节。
    高效的查找和插入:由于元素都是整数且有序,查找和插入操作的时间复杂度是 O(log(N))。

hashtable(哈希表):

特点:hashtable 是 Redis 用于表示包含字符串、浮点数或其他数据类型的集合的编码方式。它是一个无序的、动态大小的集合,内部使用哈希表来存储元素。

适用场景:hashtable 适用于存储包含各种数据类型的集合,以及大型集合,因为它可以动态增长并处理各种数据类型。

优点:
    适用性广泛:hashtable 可以存储不同类型的数据,而不仅限于整数。
    动态增长:可以随时添加或删除元素,适用于大型集合。

在这里插入图片描述

  1. sadd key element element...:向集合添加一个或多个成员

  2. smembers key返回集合中的所有成员

    在这里插入图片描述

  1. srem key移除集合中一个或多个成员

  2. sinter key key...返回给定所有集合的交集【显示共同好友】

    在这里插入图片描述

6.3.5 zset有序不重复集合

有序,元素不允许重复的集合。有序和属性score有关,和添加顺便无关。

当添加相同value时,元素不重复,score覆盖。

在这里插入图片描述

  1. zadd key score value score value score value...:向有序集合添加一个或多个成员,或者更新已存在的成员的score
  2. zrange key start end:通过索引区间返回有序集合中指定区间内的成员
  3. zrevrange key start end:返回有序集合中指定区间内的成员,通过索引,分数从高到低——取反

在这里插入图片描述

如果zadd命令中,value相同,score会覆盖

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值