Redis的非关系型数据库

第七天课堂笔记

今日目标

  1. 非关系型数据库(nosql【not only SQL】数据库)

  2. Redis的非关系型数据库

  3. Redis的安装和配置

  4. Redis常见数据类型

  5. Redis特性

nosql数据库

not only sql数据库,非关系型数据库,往往采用类似于json来存储数据。

结构化和非结构化的问题

非结构化的数据,灵活多变,根据具体情况,可以对应灵活选择数据存储的结构

结构化数据,往往固定不变。

nosql数据库缺点:

目前没有统一的标准,每一个nosql数据库都有存在不一样的语法结构,学习成本较高。

Redis数据库

Redis(remote dictionary server)远程字典服务,Redis中的数据采用KV键值对的方式存储的数据。

官网网站:redis.io/

Redis中文网:Redis中文网/

Redis还是免费开源的数据库,但是注意它最新的开源协议,为了针对云服务器提供商。

Redis的安装和配置

Redis官方没有提供window版本的Redis安装包,Redis官方提供的仅仅是C语言源码包,Linux直接编译安装,window中就比较麻烦。

17年之前,微软官方的开源组织帮助编译了一个window的安装包(在3.x版本之后,不再更新)。

后期有github上一个个人开发者在编译window的安装包。

如果使用.msi安装方法,直接下一步即可。

如果采用压缩包:

下载安装包,解压后,打开文件夹,内容如下:

为了方便启动,我们在该目录下新建一个 startup.cmd 的文件,然后将以下内容写入文件:

redis-server redis.windows.conf

这个命令其实就是在调用 redis-server.exe 命令来读取 redis.window.conf 的内容,我们双击刚才创建好的 startup.cmd 文件,就能成功的看到 Redis 启动:

或者另一种方法打开一个cmd窗口使用cd命令切换目录到redis目录下:

输入启动命令:

redis-server.exe redis.windows.conf

在启动时候得另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了,切换到redis目录下运行

redis-cli.exe -h 127.0.0.1 -p 6379

Redis的配置

Redis在启动时,会加载一个配置文件,该配置决定了Redis的大多数性能问题

bind ip

port 6379

daemonize yes Linux存在,window中没有

dbfilename dump.rdb

dir ./

requirepass 密码

slaveof mastip mastport 5.0之前使用这个

replicaof mastip mastport 5.0之后

其他的一些重要的配置选项,大家要根据注释自己理解和使用。

redis的特点

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

redis的常见数据类型

redis随着版本的升级,功能也在进一步的升级,很多好用、针对特定环境的数据都出现了,像经纬度等等,但是核心的数据主要存在五个,这五个数据类型也被称为Redis的基本数据类型。

  • 字符串

  • hash table

  • List

  • set

  • sorted set

Redis中,key的类型都是字符串,值的类型可以是任何一种Redis支持的数据类型。

字符串类型

存储的值,类型是字符串

  • set key value

  • get key

  • setex key secode value

  • mset key value key value ......

  • mget key key ......

  • incr key key + 1

  • incrby key num key + num

  • decr key key - 1

  • decrby key num

  • append key value:将value的值拼接到x后面

  • strlen key:获取key对应的值的长度

  • setnx key value

key相关的命令

  • keys pattern:查找键,支持正则

  • exists key:查找键是否存在,存在返回1,否则返回0

  • type key:查看键对应的值的类型

  • del key:根据key删除键值对

  • expire key seconds:给key设置过期时间

  • ttl key:查看键的有效时间

  • persist key

    select index

    move key

    dbsize

    Info

    flushdb

    flushall

    help

    ​ @类型

    ​ 命令

    ​ 指令

hash类型

  • hset key field value

  • hget key field

  • hmset key field value field value

  • hmget key field field

  • hget key field :获取key对应的值

  • hmget key field field:获取多个key对应的value值

  • hgetall key:获取所有属性和值

  • hkeys key:获取所有的属性

  • hlen key:获取包含属性的个数

  • hvals key:获取所有的值

  • hexists key field:判断属性是否存在

  • hdel key field field:根据属性名称删除属性及值

  • hstrlen key field:返回值的字符串长度

  • hsetnx key value

  • hincrby key field value

list列表

set集合

底层都是hash table实现的,哈希表的特性:无序的、不重复的

zset集合

底层就是hash tabl,对哈希表实现了一种包装,为每一个元素实现了权重

Redis特性

相关推荐
l1t2 小时前
duckdb 1.6dev新增的.manual命令
开发语言·数据库
辉灰笔记2 小时前
第一篇:MySQL8.0生产备份实战|XtraBackup全自动全量+增量备份(钉钉告警+异地Binlog归档)
数据库·mysql·钉钉·运维开发
山峰哥2 小时前
‌Explain实战:打开数据库执行计划的黑盒‌
大数据·服务器·数据库·sql·深度优先·宽度优先
迷途呀3 小时前
新闻头条后端:新闻缓存模块
前端·redis·python·缓存·fastapi
ClickHouseDB3 小时前
ClickHouse 26.6 版本发布说明
数据库
Wang's Blog3 小时前
Java框架快速入门:深入MyBatis-Plus高级DML操作(ID策略·逻辑删除·乐观锁)
java·数据库·mybatis
记忆停留w14 小时前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
小二·14 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手14 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful