IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis安装及五大基本类型 -> 正文阅读

[大数据]Redis安装及五大基本类型

走得最慢的人,只要他不丧失目标,也比漫无目的的徘徊的人走得快。— 莱辛

Redis简介

Redis是项目开发中常用的一个基于C语言开发的键值对存储的NoSQL数据库,全称是Remote Dictionary Service。

Redis最常用的功能是缓存,除此之外,在分布式锁、限流等方面也应用广泛。

Redis的特点

  • 支持数据持久化
  • 支持主从模式的数据备份
  • 支持多种不同的数据结构类型之间的映射
  • 提供发布订阅功能
  • 提供定时器、计数器功能

Redis的安装

下载地址:https://redis.io/download

下载完成后进入下载目录分别执行sudo makesudo make install命令即可完成安装。

在这里插入图片描述
在这里插入图片描述
执行 redis-server启动Redis。
在这里插入图片描述

配置后台启动

在redis.conf配置文件中,修改daemonize参数,设为yes
在这里插入图片描述
配置完成后重启,此时启动的redis为后台启动。

Docker安装Redis

Docker作为开发的万金油,使用起来非常舒服,所以我更倾向于通过Docker来使用Redis。
对于Docker操作不熟悉的可以看一下之前的文章:Docker容器操作

执行命令:

docker run --name myredis -p 6379:6379 -d redis --requirepass 123456

--name表示为容器起别名,-p 6379:6379表示将容器的6379端口映射到宿主机器的6379端口,-d 表示后台运行,--requirepass 123456 表示设置密码为123456。
在这里插入图片描述
执行命令:

docker exec -it myredis /bin/bash
redis-cli -a 123456

然后执行redis命令:

set name jerry

返回OK,成功。
在这里插入图片描述

五种基本数据类型

Redis是一个key-value类型的数据库,在Redis中,所有的key的类型都是字符串,不同的是value数据结构。
Redis中的字符串类似于Java中的StringBuffer,采用分配冗余空间的方式来减少内存的频繁分配。

String

  • set :将键key设定为指定的字符串值。
    在这里插入图片描述
  • get:获取key的value。如果key不存在,返回特殊值nil。如果key的value不是string,返回错误。
    在这里插入图片描述
  • append:如果 key 存在并且值为字符串,则会把 value 追加到原来值(value)的结尾。 如果 key 不存在,则创建value。
    在这里插入图片描述
  • bitcount:统计字符串被设为1的bit数。
    在这里插入图片描述
  • bitop:对一个或多个保存二进制位的字符串 key 进行位元操作,支持 AND 、OR 、NOT 、XOR,并将结果保存到 destkey 上。
    在这里插入图片描述
  • decr:对key对应的数字做减1操作。如果key不存在,减1前会被置为0。如果key不是数字类型或者不是数字表示则返回错误。支持最大长度为64位有符号的整型数字。
    在这里插入图片描述
  • decrby:将key对应的数字减去设置的目标值。
    在这里插入图片描述
  • setbit:设置或者清空key的value(字符串)在offset处的bit值。
    在这里插入图片描述
  • getbit:返回key对应的string在offset处的bit值。
    在这里插入图片描述
  • getrange:返回key对应的字符串value的子串。
    在这里插入图片描述
  • getset:对key进行赋值并返回之前的值。
    在这里插入图片描述
  • incr:- decr:对key对应的数字做加1操作。如果key不存在,加1前会被置为0。如果key不是数字类型或者不是数字表示则返回错误。支持最大长度为64位有符号的整型数字。
    在这里插入图片描述
  • incrby:将key对应的数字加上设置的目标值。
    在这里插入图片描述
  • incrbyfloat:类似于incyby,做浮点型操作。
    在这里插入图片描述
  • mget:返回所有指定的key的value。对于每个不对应string或者不存在的key,都返回特殊值nil。
    在这里插入图片描述
  • mset:对应mget,获取多个key的value。
    在这里插入图片描述
  • setnx: 全称是set if not exist ,如果key不存在value就设置,存在不做操作。
    在这里插入图片描述
  • setex:对key值设置超时时间,单位为秒。
    在这里插入图片描述
  • msetnx:setnx的批处理操作。
    在这里插入图片描述
  • psetex:对key值设置超时时间,单位为毫秒。
    在这里插入图片描述
  • setrange:覆盖value的指定区间,对应getrange。
    在这里插入图片描述
  • strlen:返回key的string类型value的长度。如果key对应的非string类型,则返回错误。
    在这里插入图片描述

List

  • lpush:将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是list 则返回一个错误。
    在这里插入图片描述

  • lpushx:和lpush作用一样,但是当key不存在时不做任何操作。
    在这里插入图片描述

  • lpop:移除并且返回 key 对应的 list 的第一个元素。
    在这里插入图片描述

  • llen:返回存储在 key 里的list的长度。 如果 key 不存在,返回长度为 0。 如果存储在 key 里的值不是一个list的话,会返回error。
    在这里插入图片描述

  • rpush:将所有指定的值插入到存于 key 的列表的头部。
    在这里插入图片描述

  • rpushx:和rpush作用一样,但是当key不存在时不做任何操作。
    在这里插入图片描述

  • rpop:移除并且返回 key 对应的 list 的最后一个元素。
    在这里插入图片描述

  • lrange:返回存储在 key 的列表里指定范围内的元素。
    在这里插入图片描述

  • lindex:返回列表里索引 index的元素。
    在这里插入图片描述

  • linsert:将value插入目标元素的前面或者后面,提供after和before两个选项。
    在这里插入图片描述

  • lrem:移除出现过指定count次数的目标元素。对与conut参数,分为三种情况:

    • count > 0:从头往尾移除值为 value 的元素。
    • count < 0: 从尾往头移除值为 value 的元素。
    • count = 0: 移除所有值为 value 的元素。
      在这里插入图片描述
  • lset:替换下标index的value,超出范围会返回error。
    在这里插入图片描述

  • ltrim:修剪列表大小,只包含设定的大小。
    在这里插入图片描述

  • rpoplpush:将list1表的尾元素弹出,添加到list2表的头部。看名字也可以知道,先执行rpop再执行lpush。
    在这里插入图片描述

  • blpop、brpop 、brpoplpush:lpop、rpop、rpoplpush对应的阻塞操作,简单的说普通操作时会立即返回结果,即便为空。阻塞操作会在目标时间内弹出元素或者超时后才结束。

Set

  • sadd:添加元素到一个 key 中。
    在这里插入图片描述
  • scard:返回集合的数量。
    在这里插入图片描述
  • sdiff:返回一个集合(set1)与给定集合(set2、set3)的差集的元素。
    在这里插入图片描述
  • sdiffstore:作用同sdiff,不同的是结果存储在set1中,若set1存在值,则覆盖其中的值。
    在这里插入图片描述
  • sinter:返回指定所有的集合的成员的交集。
    在这里插入图片描述
  • sinterstore:作用同sinter,不同的是结果存储在set3中,若set3存在值,则覆盖其中的值。
  • 在这里插入图片描述
  • smember:返回key集合所有的元素。
    在这里插入图片描述
  • sismember:返回成员 member 是否是存储的集合 key的成员。
    在这里插入图片描述
  • smove:将set6指定的value移动到set7。
    在这里插入图片描述
  • spop:移除指定集合的一个或多个元素。在这里插入图片描述
  • srandmember:随机返回key集合中的一个元素。对于参数count,有以下情况:
    • count > 0 && count < 集合长度:随机返回count个元素。
    • count > 0 && count >= 集合长度:返回全部元素。
    • count <0 && |count| < 集合长度:随机返回|count|个元素。
    • count <0 && |count| > 集合长度: 随机返回|count|个元素,但是会出现某个元素重复的情况。
      在这里插入图片描述
  • srem:移除key集合中指定的元素。如果元素不存在则忽略,如果key集合不存在则返回0,如果key的类型不是一个集合则返回错误。
    在这里插入图片描述
  • sunion:返回给定的多个集合的并集中的所有成员。
    在这里插入图片描述
  • sunionstore:作用同sunion,不同的是结果存储在set1中,若set1存在值,则覆盖其中的值。
    在这里插入图片描述

Hash

  • hset:设置 key 指定的哈希集中指定字段的值。
    在这里插入图片描述
  • hget: 返回 key 指定的哈希集中该字段所关联的值。
    在这里插入图片描述
  • hsetnx:如果不存在key中指定字段的值时则创建,存在时不做操作。
    在这里插入图片描述
  • strlen:返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0。
    在这里插入图片描述
  • hvals:返回 key 指定的哈希集中所有字段的值。
    在这里插入图片描述
  • hdel :移除key中指定的哈希集中指定的域。如果 key 指定的哈希集不存在返回0。
    在这里插入图片描述
  • hexists:返回hash里面field是否存在。
    在这里插入图片描述
  • hgetall:返回 key 指定的哈希集中所有的字段和值。
    在这里插入图片描述
  • hincrby:增加 key 指定的哈希集中指定字段的数值。如果 key 不存在,会创建一个新的哈希集。如果字段不存在,则字段的值在该操作执行前被设置为 0。支持范围为64位有符号整数。
    在这里插入图片描述
  • hincrbyfloat:hincrby的浮点型操作。
    在这里插入图片描述
  • hkeys:返回 key 指定的哈希集中所有字段的名字。
    在这里插入图片描述
  • hlen:返回 key 指定的哈希集包含的字段的数量。
    在这里插入图片描述
  • hmget:返回 key 指定的哈希集中多个指定字段的值,不存在的字段返回nil。
    在这里插入图片描述
  • hmset:设置key指定的哈希集中多个指定字段的值。
    在这里插入图片描述

ZSet

  • zadd:将指定的元素添加到有序集合中。格式为score member,score是一个双精度的浮点型数字字符串。
    在这里插入图片描述
  • zcard:返回key的有序集元素个数。
    在这里插入图片描述
  • zcount:返回 score 在某一个区间内的元素(包括等于)。
    在这里插入图片描述
  • zincrby:将key的成员member的score值加上指定增量。
    在这里插入图片描述
  • zrange:返回集合中的一组元素。withscores表示显示member的score值。
    在这里插入图片描述
  • zrevrange:zrange的倒序。
    在这里插入图片描述
  • zscore:返回member的score 值。
    在这里插入图片描述
  • zrangebyscore:按照 score 的范围返回元素。
    在这里插入图片描述
  • zrank:返回元素的排名(从小到大)。
    在这里插入图片描述
  • zrevrank:返回元素的排名(从大到小)。
    在这里插入图片描述
  • zrem:移除集合中的一个元素。
    在这里插入图片描述
  • zinterstore:求多个集合的交集,返回结果报存在zset1中。numberkeys(图片中的2)表示给定的求交集的集合个数。
    在这里插入图片描述
  • zinter:同zinterstore,但是会直接返回结果。
    在这里插入图片描述
  • zrangebylex:返回指定区间内的成员。min和max必须以(或者[开头(数学中的开区间和闭区间)。
    在这里插入图片描述

key

  • del:删除给定的key。
    在这里插入图片描述

  • dump:序列化给定的key。
    在这里插入图片描述

  • exists:判断key是否存在。
    在这里插入图片描述

  • ttl:查看ket的有效时间。
    在这里插入图片描述

  • pttl:同ttl,但是返回的是毫秒。
    在这里插入图片描述

  • expire:设置key的有效期,如果key在过期之前被重新 set ,则过期时间会失效。
    在这里插入图片描述

  • persist:移除key的过期时间。
    在这里插入图片描述

  • keys *:查看所有的key。
    在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 12:06:24  更:2021-12-05 12:08:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:48:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码