redis快速了解

本文介绍了NoSQL数据库Redis的基础概念、特性、优势,包括数据持久化、数据结构、性能指标以及关键操作,如配置、命令和数据管理。

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

1. 前言

1.1 NoSQL:一类新出现的数据库(not only sql)

  • 泛指非关系型的数据库
  • 不支持SQL语法
  • 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式
  • NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
  • NoSQL中的产品种类很多:
    • Redis
    • Mongodb
    • Hbase hadoop
    • Cassandra hadoop

1.2 Redis简介

Redis是 NoSQL技术的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色

1.3 Redis特性

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

1.4 Redis 优势

  • Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • Redis的所有操作都是原子性的。
  • Redis还支持 publish/subscribe, 通知, key 过期等等特性。

1.5 详细内容

Redis中文官方
Redis官方

2. 配置

如果你的学习环境是Linux的话

  • Redis的配置信息在/etc/redis/redis.conf

2.1 核心配置选项

  • 绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ip

bind 127.0.0.1

  • 端⼝,默认为6379

port 6379

  • 是否以守护进程运⾏
    • 如果以守护进程运⾏,则不会在命令⾏阻塞,类似于服务
    • 如果以⾮守护进程运⾏,则当前终端被阻塞
    • 设置为yes表示守护进程,设置为no表示⾮守护进程
    • 推荐设置为yes

daemonize yes

  • 数据⽂件

dbfilename dump.rdb

  • 数据⽂件存储路径

dir /var/lib/redis

  • ⽇志⽂件

logfile “/var/log/redis/redis-server.log”

  • 数据库,默认有16个

database 16

  • 主从复制,类似于双机备份。

slaveof

3. 操作命令

3.1 客户端命令

  • 连接redis

redis-cli

  • 运⾏测试命令

ping

  • 切换数据库
  • 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库

select 10

3.2 数据操作命令

  • redis是key-value的数据结构,每条数据都是⼀个键值对
  • 键的类型是字符串
  • 注意:键不能重复
  • 值的类型分为五种:
    • 字符串string
    • 哈希hash
    • 列表list
    • 集合set
    • 有序集合zset

3.2.1 String类型

字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

保存

如果设置的键不存在则为添加,如果设置的键已经存在则修改

  • 设置键值

set key value

  • 例1:设置键为name值为Lindbergh的数据

set name Lindbergh

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

setex key seconds value

  • 例2:设置键为aa值为aa过期时间为3秒的数据

setex haha 3 haha

  • 设置多个键值

mset key1 value1 key2 value2 …

  • 例3:设置键为a1值为go、键为a2值为python、键为a3值为java

mset a1 go a2 python a3 java

  • 追加值

append key value

  • 例4:向键为a1中追加值haha

append a1 haha

获取
  • 获取:根据键获取值,如果不存在此键则返回nil

get key

  • 例5:获取键name的值

get name

  • 根据多个键获取多个值

mget key1 key2 …

  • 例6:获取键a1、a2、a3的值

mget a1 a2 a3

3.2.2 键命令

  • 查找键,参数⽀持正则表达式

keys pattern

  • 例1:查看所有键

keys *

  • 例2:查看名称中包含a的键

keys a*

  • 判断键是否存在,如果存在返回1,不存在返回0

exists key

  • 例3:判断键a1是否存在

exists a1

  • 查看键对应的value的类型

type key

  • 例4:查看键a1的值类型,为redis⽀持的五种类型中的⼀种

type a1

  • 删除键及对应的值

del key1 key2 …

  • 例5:删除键a2、a3

del a2 a3

  • 设置过期时间,以秒为单位
  • 如果没有指定过期时间则⼀直存在,直到使⽤DEL移除

expire key seconds

  • 例6:设置键a1的过期时间为3秒

expire a1 3

  • 查看有效时间,以秒为单位

ttl key

  • 例7:查看键bb的有效时间

ttl bb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值