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特性

相关推荐
好奇的菜鸟3 小时前
Spring Boot 事务失效问题:同一个 Service 类中方法调用导致事务失效的原因及解决方案
数据库·spring boot·sql
岁岁岁平安4 小时前
Redis基础学习(五大值数据类型的常用操作命令)
数据库·redis·学习·redis list·redis hash·redis set·redis string
小光学长5 小时前
基于vue框架的防疫科普网站0838x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
极限实验室5 小时前
使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
数据库·docker·devops
飞翔的佩奇6 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
float_六七8 小时前
SQL六大核心类别全解析
数据库·sql·oracle
Code季风10 小时前
将 gRPC 服务注册到 Consul:从配置到服务发现的完整实践(上)
数据库·微服务·go·json·服务发现·consul
Boilermaker199210 小时前
【Java EE】SpringIoC
前端·数据库·spring
来自宇宙的曹先生10 小时前
用 Spring Boot + Redis 实现哔哩哔哩弹幕系统(上篇博客改进版)
spring boot·redis·后端
霸王龙的小胳膊10 小时前
泛微虚拟视图-数据虚拟化集成
数据库