Redis

本文介绍了Redis,一种高性能的NoSQL数据库,适用于高并发读写和数据缓存等场景。文章详细讲解了Redis的安装过程,数据结构如哈希类型,以及常用命令,包括键值操作和哈希操作。还涉及Redis的消息订阅与发布、事务处理及持久化机制,如RDB和AOF。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NoSQL:not only sql

什么是NoSQL?
是一项全新的数据库理念,泛指非关系型的数据库。
为什么有NoSQL?
互联网项目:数据库高并发读写,海量数据高效率存储,数据库的高可用性和高可扩展性。
NoSQL的主流:

在这里插入图片描述

键值对(redis)、列式存储、文档图形、图形数据库。
NoSQL特点:
数据库高并发读写,海量数据高效率存储,可扩展。

Redis简介

什么是实时系统?
瞬间可以实现某些数据的统计或者是功能的实现
什么是Redis?
由C语言实现的直接操作内存的开源的高性能的数据库软件。
Redis的应用场景?

  1. 缓存(数据查询、短连接、新闻内容、商品内容等等)
  2. 聊天室的在线好友列表
  3. 任务队列(秒杀、抢购、12306等等)
  4. 应用排行榜
  5. 网站访问统计

安装redis

步骤一:
打开虚拟机,开启linux操作系统。获取Redis的安装包,redis-3.0.7.tar.gz,利用filezilla.exe软件(Linux章节用过)将安装包上传到/root/
步骤二:
命令cd /root/ 到root文件夹里面。命令tar -zxvf redis-3.0.7.tar.gz解压。
步骤三:
编译,将源码翻译成为.o文件,命令cd /root/redis-3.0.7进入文件夹,命令make编译。
在这里插入图片描述
步骤四:
创建一个安装目录,命令mkdir /usr/local/redis,创建一个名为redis的文件夹。
步骤五:
安装redis

cd /root/redis-3.0.7
make PREFIX=/usr/local/redis

安装截图
在这里插入图片描述
步骤六:
由于redis启动需要一个配置文件,将配置文件复制到/usr/local/redis/中去

cp /root/redis-3.0.7/redis.conf /usr/local/redis

步骤七:
修改/usr/local/redis/redis.conf,就是将下图中的daemonize参数由原来的no改为yes。

在这里插入图片描述步骤八:
启动服务端和客户端

在这里插入图片描述第一句命令的意思是在配置文件redis.conf的前提下执行开启服务器
步骤九:
测试redis是否正确安装成功
向服务器发送ping,服务器返回pong
向服务器发送set name erbei,之后再使用命令get name能够获取带erbei的信息
向服务器发送key *,可以查看服务器中一共有多少键值对的数据,可以查看到各个键值类型数据。
(需要注意是,redis的段口号是6379,但是在之前的步骤中,我并没有开放这个端口,那为什么这直接可以运行redis,因为redis有他默认的IP地址,127.0.0.1,和端口号,下图中的IP地址和当前linux的IP地址是不一样的,要想使用当前linux的IP地址还需要打开防火墙下的6379端口号。)
在这里插入图片描述

Redis的数据结构

在这里插入图片描述

redis常用命令

  • set key value 赋值
  • get key 取值
  • getset key value 先获取key的值,在设置该key的值
    在这里插入图片描述
  • del key 删除指定key
  • incr key 将key值自增1,key不存在初始值为0
  • decr key 将key值自减1,key不存在初始值就是0,若当前key的类型不能转化为整型将会抛异常
    在这里插入图片描述
  • incrby key increment 指定key值增加increment
  • decrby key increment 指定key值减少increment
    在这里插入图片描述
  • append key value 在指定key值后面增加value值
    在这里插入图片描述

以下是hash类型的常用命令

在这里插入图片描述

  • hset key field value 为指定的key设定键值对
  • hmset key field value [field2 value2 …] 设置key中的多个键值对
  • hget key field 返回指定的key中的field
  • hmget key fields 获取key中的多个field的值
  • hgetall key 获取key中的所有键值对
    在这里插入图片描述
  • hdel key field [field…] 可以删除一个或多个字段,返回值是被删除的字段个数
    在这里插入图片描述
  • del key 删除整个list,整个键值对
  • hincrby key field increment 设置key中field的值增加increment
    在这里插入图片描述
  • hexists key field 判断指定的key中的field是否存在
  • hlen key 获取key中所包含的field的数量
    在这里插入图片描述
  • hkeys key 获得所有的key
  • hvals key 获得所有的value
    -

Redis的消息订阅与发布

  • subscribe channel 订阅频道,例如subscribe mychat,订阅mychat这个频道
  • psubscrbe channel* 批量订阅频道,例如psubscribe s*,订阅以s开头的频道
  • publish channel content 在指定的频道中发布消息,如publish mychat ‘sss’
    在这里插入图片描述

在别的CRT窗口中访问指定频道,消息会在指定的频道中显示。当你批量订阅了以my开头的频道时,你可以使用mychat01,mychat02等等,只要是my开头,都可以使用。

Redis事务

和众多的其他数据库一样,redis作为NoSQL数据库也同样提供而事务机制,在redis中,MULTI/EXEC/DISCARD这三个命令是我们实现事务的基石

  • mutil 开启事务用于标记事务的开始,其后执行的命令都将被存入命令队列,(一个干在干另一个,不能同时干两个事务)直到执行EXEC时,这些命令才会被原子的执行,类似与关系型数据库中的:begin transaction
  • exec 提交事务,类似与关系型数据库中的:commit
  • discard 事务回滚,类似与关系型数据库中的:rollback

在这里插入图片描述上面箭头表示的是在开启事务的时候,变量值是不会变得,只有事务执行完,变量才会发生改变。
左边的方框表示的是回滚,刚开始是jack,在事务中设置成了rose,但是回滚了,值又变成了初始化的jack
右边方框表示的是错误命令,虽然中间有个加x出错了,但是不耽误其他语句,最后变量还是加上了两个5,变为了20.

redis持久化

两种持久化的方式,一种RDB,一种AOF,可以单独使用其中一种或者将两者结合使用。
1、RDB持久化(默认支持,无需配置)
该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘

在这里插入图片描述在这里插入图片描述2、AOF
该机制将以日志的形式记录服务器所处理的每一个写操作,在redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。就是把你每一句的命令都拿个文件记录下来,下次你再使用Redis的时候,自动加载这个文件,就可以获取到之前操作Redis的数据了。
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值