一起重新开始学大数据-hadoop先导篇-Day41-Redis安装及字符串类型基本命令

Redis是一个开源的NoSQL数据库,支持多种数据结构,如字符串、散列、列表、集合等。本文介绍了Redis的安装过程,包括在阿里云上配置yum源、编译安装、设置环境变量和启动服务。同时,详细讲解了Redis的基本命令,如SET、GET、EXPIRE等,以及位操作和键值操作,适合初学者快速掌握Redis。
摘要由CSDN通过智能技术生成
一起重新开始学大数据-hadoop先导篇-Day41-Redis安装及基本命令

在这里插入图片描述

科普环节


Redis是什么?

  • 开源的(BSD协议),使用ANSI C 编写,基于内存的且支持持久化,高性能的Key-Value的NoSQL数据库

  • 支持数据结构类型丰富,有如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围- 查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。

  • 丰富的支持主流语言的客户端,C、C++、Python、Erlang、R、C#、Java、PHP、Objective-C、Perl、Ruby、Scala、Go、JavaScript

  • 用途:缓存(StackOverFlow)、数据库(微博)、消息中间件(微博)

  • 官方网站: http://www.redis.io

SQL分类

在这里插入图片描述

sql排名

👉👉👉👉sql排行链接

在这里插入图片描述

Redis数据模型

在这里插入图片描述

Key

  • Redis key 值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如”foo”的简单字符串到一个JPEG文件的内容都可以。空字符串也是有效key值

  • Key取值原则
    键值不需要太长,消耗内存,且在数据中查找这类
    键值的计算成本较高
    键值不宜过短,可读性较差

默认数据类型为String

  • 字符串是一种最基本的Redis值类型。Redis字符串是二进制安全的,这意味着一个Redis字符串能包含任意类型的数据

    • 例如: 一张JPEG格式的图片或者一个序列化的Ruby对象
  • 一个字符串类型的值最多能存储512M字节的内容

安装


Redis单节点安装

配置阿里云yum源(下载相对国外快点)

下载配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
生成缓存
yum makecache

安装redis

1、安装依赖
yum install -y gcc-c++ gcc tcl

2、上传压缩包并解压(通过xftp上传到/usr/local/module)
在这里插入图片描述

链接:https://pan.baidu.com/s/1Zl1wSsRfDAxBzUN12vn_qw
提取码:dx9c

tar -zxvf redis-3.0.0.tar.gz -C /usr/local/soft
3、编译
cd redis-3.0.0
make
# make test (make测试是否成功,可不执行)
创建安装目录
mkdir -p /usr/local/soft/redis
安装
make PREFIX=/usr/local/soft/redis install

4、复制配置文件(因为redis要基于redis.conf文件才能运行)
cp /usr/local/soft/redis-3.0.0/redis.conf /usr/local/soft/redis/bin/

配置环境变量
vim /etc/profile
增加
export REDIS_HOME=/usr/local/soft/redis/
在PATH后面增加(两个变量之间用冒号隔开) :$REDIS_HOME/bin

使环境变量生效
source /etc/profile

5、启动redis
启动方法①后台启动(要在redis的bin目录下执行,因为需要基于redis.conf文件)
cd /usr/local/soft/redis/bin
nohup redis-server redis.conf &
启动方法②(要在redis的bin目录下执行,因为需要基于redis.conf文件)
cd /usr/local/soft/redis/bin
redis-server redis.conf

如果要关闭redis
ps -aux | grep redis
kill -9 redis服务的PID值

6、连接redis
redis-cli

实践操作


命令

帮助命令

Help

在这里插入图片描述

Help <'tab >

Help set
在这里插入图片描述

Help @string
在这里插入图片描述
 
 
 
 

String类型基本命令


在这里插入图片描述

SET命令

使用help set帮助文档查看
在这里插入图片描述

设置字符串值
SET key value [EX seconds] [PX milliseconds] [NX|XX]
  EX设置过期时间,秒,等同于SETEX key seconds value
  PX 设置过期时间,毫秒,等同于PSETEX key milliseconds value
  NX 键不存在,才能设置,等同于SETNX key value
  XX 键存在时,才能设置
设置多个键的字符串值

  MSET key value [key value …]
键不存在时,设置字符串值
  MSETNX key value [key value …]
注意:这是原子操作

时间

过期

  Redis中可以给Key设置一个生存时间(秒或毫秒),当达到这个时长后,这些键值将会被自动删除
设置多少秒或者毫秒后过期
EXPIRE key seconds
PEXPIRE key milliseconds
设置在指定Unix时间戳过期

  EXPIREAT key timestamp
  PEXPIREAT key milliseconds-timestamp

删除过期

  PERSIST key
生存时间

  Time To Live,Key的剩余生存时间
查看剩余生存时间
TTL key
在这里插入图片描述

PTTL key
在这里插入图片描述

  key存在但没有设置TTL,返回-1
  key存在,但还在生存期内,返回剩余的秒或者毫秒
  key曾经存在,但已经消亡,返回-2(2.8版本之前返回-1)

键值

  • 查找键

    • KEYS pattern
      在这里插入图片描述
  • pattern取值

    • *任意长度字符
    • ?任意一个字符
    • [] 字符集合,表示可以是集合中的任意一个
  • 键类型

    • TYPE key
  • 键是否存在

    • EXISTS key
  • 键重命名

    • RENAME key newkey
    • RENAMENX key newkey
  • 键删除

    • DEL key [key ...]
  • 获取值

    • GET key
  • 获取多个给定的键的值

    • MGET key [key ...]
  • 返回旧值并设置新值

    • GETSET key value
    • 如果键不存在,就创建并赋值
  • 字符串长度

    • STRLEN key
  • 追加字符串

    • APPEND key value
    • 如果键存在就追加;如果不存在就等同于SET key value
  • 获取子字符串

    • GETRANGE key start end
    • 索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符
  • 覆盖字符串

    • SETRANGE key offset value

步增

  • 步长1的增减
    • INCR key
    • DECR key
    • 字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
  • 步长增减
    • INCRBY key decrement
    • DECR key decrement
    • 字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串

bit

  • 位图bitmap

    • 位图不是真正的数据类型,它是定义在字符串类型中
    • 一个字符串类型的值最多能存储512M字节的内容
    • 位上限:2(9+10+10+3)=232b
  • 设置某一位上的值

    • SETBIT key offset value
      在这里插入图片描述

    • offset偏移量,从0开始

    • value不写,默认是0

  • 获取某一位上的值

    • GETBIT key offset
      在这里插入图片描述
  • 返回指定值0或者1在指定区间上第一次出现的位置

    • BITPOS key bit [start] [end]
      在这里插入图片描述
  • 位操作

    • 对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 dteskey 上
      在这里插入图片描述

    • operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种

    • BITOP AND destkey key [key …] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey

    • BITOP OR destkey key [key …] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey

    • BITOP XOR destkey key [key …] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey

    • BITOP NOT destkey key ,对给定 key 求逻辑非,并将结果保存到 destkey

    • 除了 NOT 操作之外,其他操作都可以接受一个或多个 key 作为输入

    • 当 BITOP 处理不同长度的字符串时,较短的那个字符串所缺少的部分会被看作 0

    • 空的 key 也被看作是包含 0 的字符串序列

  • 统计指定位区间上值为1的个数

    • BITCOUNT key [start] [end]
      在这里插入图片描述

    • 从左向右从0开始,从右向左从-1开始,注意官方start、end是位,测试后是字节

    • BITCOUNT testkey 0 0表示从索引为0个字节到索引为0个字节,就是第一个字节的统计

    • BITCOUNT testkey 0 -1等同于BITCOUNT testkey

    • 最常用的就是 BITCOUNT testkey

库操作

  • 登录不同的库

    redis-cli --help
    redis-cli -n 2

  • 清除当前库数据
    FLUSHDB

  • 清除所有库中的数据

    FLUSHALL

案例


网站用户的上线次数统计(活跃用户)

  用户ID为key,天作为offset,上线置为1

  ID为500的用户,今年的第1天上线、第30天上线

  SETBIT u500 1 1
  SETBIT u500 30 1

  BITCOUNT u500

  KYES u*

按天统计网站活跃用户

  天作为key,用户ID为offset,上线置为1
  求一段时间内活跃用户数
  SETBIT 20160602 15 1

  SETBIT 20160601 123 1
  SETBIT 20160606 123 1
  求6月1日到6月10日的活跃用户

  BITOP OR 20160601-10 20160601 20160602 20160603 20160610

  BITCOUNT 20160601-10
  结果为2

|
|
|
|

上一章-hadoop先导篇-Day40-初识Springboot
下一章-hadoop先导篇-Day42-Redis的列表、散列、set集合、Sorted和Redis持久化
|
|
|
|
|

听说长按大拇指👍会发生神奇的事情呢!好像是下面的画面,听说点过的人🧑一个月内就找到了对象的💑💑💑,并且还中了大奖💴$$$,考试直接拿满分💯,颜值突然就提升了😎,虽然对你好像也不需要,是吧,吴彦祖🤵!

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的动作太慢了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值