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

相关推荐
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO9 分钟前
MySQL事务
数据库·mysql
cyt涛2 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
Rookie也要加油2 小时前
01_SQLite
数据库·sqlite
liuxin334455662 小时前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。3 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec3 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa3 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke4 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D4 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
小宇成长录4 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份