Redis基础——8大数据类型都在这了

NoSQL介绍

基本概述

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库

NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。

特点:

  • 不遵循SQL标准。(有自己的一系列命令操作)
  • 不支持ACID(没有事务地特性不代表没有事务)
  • 比SQL性能高很多

Redis介绍

使用场景

配合关系型数据库做高速缓存

比如:高频率访问的数据,降低数据库地IO,分布式架构中,做session地共享

多样地数据结构存储持久化数据

安装

Redis官方网站 Redis中文官方网站
http://redis.io http://redis.cn/

说明:redis没有官方提供windows地安装包,但是Windows自个提供了这个安装包。

  1. 准备工作:下载安装最新版的gcc编译器

    yum install centos-release-scl scl-utils-build
    yum install -y devtoolset-8-toolchain
    scl enable devtoolset-8 bash
    gcc --version # 测试安装环境
    
  2. Linux命令配置

    tar -zxvf redis-6.2.1.tar.gz # 解压这个安装包
    # 然后进入这个解压后的目录
    cd redis-6.2.1
    # 在redis-6.2.1目录下再次执行make命令(只是编译好)
    # 如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件
    # 解决方案:运行make distclean,在redis-6.2.1目录下再次执行make命令,跳过make test 继续执行: make install
    
  3. 然后就是启动

Redis相关知识

  • redis中默认16个数据库,类似数组下标从0开始,初始默认使用0号库。使用命令 select 来切换数据库。如: select 8

  • 统一密码管理,所有库同样密码。

  • dbsize查看当前数据库的key的数量

  • flushdb清空当前库

  • flushall通杀全部库

Redis是单线程+多路IO复用技术

正经说法:多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)

在这里插入图片描述

通俗例子:假设有三个人去车站买票,买不同的地方的,这个时候就需要三个窗口进行,并且如果前面有人你就不能走,还需要排队等着,这个时候如果叫黄牛买票呢?这三个人就只需要一个电话打给这个黄牛,然后他们有啥事就走了,压根不用等,等这个黄牛买到票了会打电话通知他们,这个时候他们再来取票就行了。

Redis数据类型

命令手册:http://www.redis.cn/commands.html

菜鸟教程:https://www.runoob.com/redis

在先命令测试:https://try.redis.io/(只包含常用地数据结构操作)

redis键地常用命令

命令 效果
keys * 查看当前库所有key (匹配:keys *1)
exists key 判断某个key是否存在(1存在,0不存在)
type key 查看你的key是什么类型
del key 删除指定的key数据
unlink key 根据value选择非阻塞删除
仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作
expire key 10 10秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
select [db] 命令切换数据库
dbsize 查看当前数据库的key的数量
flushdb 清空当前库
flushall 通杀全部库

String字符串类型

基本介绍

String是Redis最基本的类型,一个key对应一个value。

String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。

一个Redis中字符串value最多可以是512M

常用命令

  • set :添加键值对
set key value [expiration EX seconds|PX milliseconds] [NX|XX]

# 参数说明
*NX:当数据库中key不存在时,可以将key-value添加数据库
*XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
*EX:key的超时秒数
*PX:key的超时毫秒数,与EX互斥
  • get :查询对应键值

  • append :将给定的 追加到原值的末尾(返回追加后地长度)

  • strlen :获得值的长度

  • setnx :只有在 key 不存在时 设置 key 的值(存在的时候返回0)
    在这里插入图片描述

  • incr :将 key 中储存的数字值增1,只能对数字值操作,如果为空,新增值为1

  • decr :将 key 中储存的数字值减1只能对数字值操作&#

  • 16
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值