首页 > 数据库 >redis入门

redis入门

时间:2024-09-09 11:06:24浏览次数:13  
标签:入门 数据库 redis value 列表 field key

redis入门

Nosql与sql

Nosql是什么

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

sql是什么

sql指的是关系型数据库。关系型数据库要满足4大特征,也就是我们常提的ACID原则(A原子性、C一致性、I独立性、D持久性)

sql与nosql

  1. NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
  2. sql支持关系复杂的数据查询,nosql反之
  3. sql支持事务性,nosql不支持

典型的nosql数据库

Mongodb、redis、Hbase hadoop

redis

redis介绍

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件
redis是c语言编写的,支持数据持久化,是key-value类型数据库。
应用在缓存,队列系统中
redis支持数据备份,也就是master-slave模式

redis优势

  1. 性能高,读取速度10万次每秒(还可以通过集群再度提升)
  2. 写入速度8万次每秒
  3. 所有操作支持原子性

应用情况

  1. 用作缓存数据库,数据放在内存中
  2. 替代某些场景下的mysql,如社交类app
  3. 大型系统中,可以存储session信息,购物车订单

img

redis安装

存在通过yum和源码安装两种情况,这里直接写执行步骤,不做赘述。

    # 1.yum安装
    # 查看redis版本
    yum list redis
    # 安装redis
    yum install redis
    # 启动redis
    systemctl start redis

    # 2. 源码安装
    # 下载redis源码
    wget http://download.redis.io/releases/redis-4.0.10.tar.gz
    # 解压缩
    tar -zxf redis-4.0.10.tar.gz
    # 编译安装
    make && make install
    # 安装到指定目录,默认在redis目录下的src底下
    # 下面自己配置环境变量
     echo PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/vimx/bin:/root/binopt/redis-4.0.10/src" >> /etc/profile
    # 运行以完成安装
    [root@localhost src]# redis-server --version
    Redis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=92305af7dfef4310

redis可执行文件

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

redis基本配置文件

    # 如果使用源码安装的话,那么配置文件目录在src下的redis.conf。
    # redis默认不会调用配置文件启动。需要指定配置文件
    redis-server redis.conf

    # 重要配置
    bind 127.0.0.1 # 配置可连接的ip
    port 6379 # 配置redis启动端口
    daemonize yes # 守护进程方式运行(后台运行)
    dbfilename dump.rdb # 数据文件指定
    dir /var/lib/redis/ # 数据文件存放路径
    logfile /var/log/redis/redis-server.log # 日志文件
    slaveof # 主从复制
    requirepass password # 密码

redis支持的数据类型

redis是一种高级的key:values储存系统。支持下面5种数据类型:

  • 字符串(strings)
  • 散列(hashes)
  • 列表(lists)
  • 集合(sets)
  • 有序集合(sorted sets)

基本命令

    # 进入redis服务端
    redis-cli
    # 接下来可以执行redis命令
    ping # 回复pong说明通了
    keys * # 查看所有的键
    set key value # 设置一个键值
    expire key # 给key加上过期时间
    get key  # 获取一个键的值
    type key # 显示value的类型
    ttl key # 查看key的过期时间。(-1表示永不过期,-2表示已过期)
    persist key # 取消key的过期时间(对过期的key没用)
    exists key # 监测key是否存在
    del key # 删除key

    dbsize # 计算key的数量
    flushall # 删除所有库的所有键
    flushdb # 删除当前数据库的所有键

各数据类型常用命令

详细:详细命令可以参考菜鸟教程py鱼博客随笔

    # string
    set key # 设置key
    get  key # 获取key
    append key value # 追加string
    mset  key1 value1 key2 value2 # 设置多个键值对
    mget  key1 key2 key3 # 获取多个键值对
    del key # 删除key
    incr key # 递增+1
    decr key # 递减-1

    # list
    lpush 列表名 value1 value2 # 从左一个一个插入
    rpush 列表名 value1 value2 # 从右一个一个插入
    lrange 列表名 第一个切片值 第二个切片值 # 从第一个到第二个之间的列表值(如 lrange paidui 0 -1 拿列表所有的值)
    ltrim 列表名 截取开头 截取结尾 # 将列表切片覆盖原列表,注意取前也取后
    lpop 列表名 # 从左删
    rpop 列表名 # 从右删

    # set
    sadd/srem key value1 value2  # 添加/删除 元素
    sismember key value  # 判断是否为set的一个元素
    smembers  key  # 返回集合所有的成员
    sdiff key1 key2 # 返回一个集合和其他集合的差异(差集key1-key2)
    sinter  key1 key2 # 返回几个集合的交集(交集)
    sunion  key1 key2 # 返回几个集合的并集(并集)

    # 哈希(dict)
    hset key field value # 设置散列值(一个)
    hget key field  # 获取散列值
    hmset key field1 value1 field2 value2 # 设置多对散列值
    hmget key field1 field2 # 获取多对散列值
    hsetnx key field value # 如果散列已经存在,则不设置(防止覆盖key)
    hkeys key # 返回所有keys
    hvals key # 返回所有values
    hlen key # 返回散列包含域(field)的数量
    hdel key field # 删除散列指定的域(field)
    hexists key field # 判断是否存在

标签:入门,数据库,redis,value,列表,field,key
From: https://www.cnblogs.com/lmlsh/p/18353477

相关文章

  • redis订阅者和进阶
    Redis进阶redis订阅者模式简介redis存在订阅者模式。就像是一个广播系统。存在三种角色:订阅者、发布者、频道。在redis当中,它们表示为subscriber(订阅者)、publisher(发布者)、channel(频道)其中的行为大抵是:订阅者订阅频道-->发布者针对于特定频道发布信息-->特定订阅者......
  • redis主从备份
    redis主从备份主从复制介绍redis主从复制原理:从服务器向主服务器发送SYNC命令。接到SYNC命令的主服务器会调用BGSAVE命令,创建一个RDB文件,并使用缓冲区记录接下来执行的所有写命令。当主服务器执行完BGSAVE命令时,它会向从服务器发送RDB文件,而从服务器则会接收并载......
  • redis集群
    redis集群配置为什么要使用集群redis官方生成可以达到10万/每秒,每秒执行10万条命令,假如业务需要每秒100万的命令执行呢。该怎么处理呢一台服务器内存正常是16~256G,假如你的业务需要500G内存,又该如何解决集群的核心思想是将数据分片(sharding)储存于多个redis实例当中。集群......
  • MySQL零基础入门教程-8.1 表的连接\增删数据、表结构的增删改、字段约束(非空、唯一
    教程来源:B站视频BV1Vy4y1z7EX001-数据库概述_哔哩哔哩_bilibili我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享本文内容为完整笔记的第三篇目录1、表怎么进行连接的2、insert语句可以一次插入多条记录吗?可以的!3、快速创建表?【了解内容】4、将查询结果......
  • ADB安装及使用详解(非常详细)从零基础入门到精通,看完这一篇就够了
    文章目录一、ADB简介1、什么是adb2、为什么要用adb二、准备工具1、下载adb2、配置环境变量3、连接4、电脑打开cmd窗口三、ADB命令详解1、基本命令2、权限命令3、建立连接4、apk操作指令5、文件操作指令6、日志操作指令7、系统操作指令题外话==如何入门学习网络......
  • Mathematica 入门
    前言WolframMathematica(简称MMA),是由WolframResearch开发的科学计算软件。本文我们将介绍Mathematica的界面、语法和基本应用。类似的软件还有MATLAB和Maple等。MMA官网:https://www.wolfram.com/mathematica/MMA的安装及激活:Mathematica安装激活极简教程-科研小......
  • Redis 分布式锁:实现与应用
    在分布式系统中,为了保证数据的一致性和并发控制,常常需要使用分布式锁。Redis作为一种高性能的内存数据库,提供了一些特性可以方便地实现分布式锁。今天,我们就来探讨一下如何用Redis实现分布式锁。一、分布式锁的基本概念分布式锁是一种用于在分布式系统中协调多个进程或线程对......
  • Redis 集群的实现方案全解析
    在当今大数据时代,Redis作为一款高性能的内存数据库,被广泛应用于各种场景。然而,随着数据量的不断增长和业务需求的日益复杂,单节点的Redis往往无法满足需求,这时就需要使用Redis集群来实现数据的分布式存储和高可用性。今天,我们就来一起探讨一下Redis集群的实现方案有哪些。一......
  • Redis 实现延迟队列的巧妙方法
    今天我们来探索一下Redis是如何巧妙地实现延迟队列的,这可是在很多场景下都非常实用的技术哦!一、什么是延迟队列?延迟队列,简单来说,就是可以让消息在指定的延迟时间之后才被消费的队列。想象一下,你在网上订了一份外卖,商家并不会立即配送,而是根据你选择的送达时间,延迟一段时......
  • SpringMVC入门概念
    SpringMVC是目前主流的实现MVC设计模式的框架,是Spring框架的一个分支产品,以Springloc容器为基础,并利用容器的特性来简化它的配置。什么意思呢?其实就是springmvc里需要用到各种各样的组件,然后这些组件它其实就是对象,那这些对象怎么去使用呢?就交给IOC容器来管理。也就是说......