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数据库:非关系型数据库,即NoSql数据库,基于内存存储系统(内存+磁盘),其中有常用的五个数据类型:String,Hash(键值对集合),List(双向队列集合),Set集合,SortedSet(可排序集合)



一、关系型数据库与非关系型数据库

1、关系型数据库优缺点

① 优点
-容易理解
-使用方便,通用的sql语言
-易于维护,丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大
大降低了数据冗余和数据不一致的概率

② 缺点
-磁盘I/O是并发的瓶颈
-海量数据查询效率低
-横向扩展困难,无法简单的通过添加硬件和服务节点来扩展性能和负载能力,
当需要对数
-据库进行升级和扩展时,需要停机维护和数据迁移
-多表的关联查询以及复杂的数据分析类型的复杂sql查询,性能欠佳。因为要
保证acid,必须按照三范式设计。
OrcaleSql ServerMySql,DB2

2、非关系型数据库优缺点

① 优点
-根据需要添加字段,不需要多表联查。仅需id取出对应的value
-适用于SNS(社会化网络服务软件。比如facebook,微博)
-严格上讲不是一种数据库,而是一种数据结构化存储方法的集合
② 缺点
-只适合存储一些较为简单的数据
-不合适复杂查询的数据
-不合适持久存储海量数据
K-VRedisMemcache
文档:MongoDB
搜索:ElasticsearchSolr
可扩展性分布式:HBase

在这里插入图片描述


二、在linux环境下安装Redis

提前准备好虚拟机…(不会装虚拟机的看以前的文章)


1、下载tar包解压并安装

官方地址下载


① 上传至Linux&解压tar包

在这里插入图片描述


解压命令:》

tar zxvf redis-5.0.3.tar.gz

安装Redis需要c++环境:》

yum -y install gcc-c++ autoconf automake

切入解压后的文件夹中进行编译:

cd redis-5.0.3/ 
make

指定安装路径并创建路径:》

//创建安装目录
mkdir -p /usr/local/redis
//指定安装路径
make PREFIX=/usr/local/redis/ install 

注意:不使用:make install(make install默认安装到/usr/local/bin目录下) 使用:如果需要指定安装路径,需要添加PREFIX参数··


安装成功:

在这里插入图片描述


2、基本测试与配置

①、启动服务器与客户端
//开启服务器CTRL+c结束
./redis-server
//开启客户端
./redis-cli

在这里插入图片描述

此时会发现,服务器会导致这个窗口无法直接启动客户端,需要另开窗口,所以需要进行配置


②、配置redis修改redis.conf文件

Vim查找内容直接输入‘/+内容回车即可,用n键查找下一个’

vim redis.conf//修改配置文件
//修改如下:
daemonize yes//启动时指定redis.conf即可后台启动
protected-mode no//方便window客户端可以连接
# bind 127.0.0.1 ::1//注释掉,否则只能本地可以连接服务器
 requirepass 123456//配置访问的密码
//以上配置方便后期使用,配置完毕保存退出:wq

启用linux中的客户端:
在这里插入图片描述
此处-p:端口号,-a:服务器访问密码


使用windows客户端连接服务器:
在这里插入图片描述

测试连接即可,ip address查看自己linux地址


二、常用五类数据结构

help@String /hash/list...可以获取相关用法

1、String 类型

? 常用功能

添加和查询

set :添加一条String类型数据
get :获取一条String类型数据
mset :添加多条String类型数据
mget :获取多条String类型数据

在这里插入图片描述


递增递减

incr id //默认增加1
incrby id 10
incrbyfloat id 5.52 //增加float
decr id //默认减少1
decrby id 10 //减少10

在这里插入图片描述


删除

del age //删除

在这里插入图片描述


修改

set id 20 //从新复制即可
setnx id 30 //当有值时,不会覆盖

在这里插入图片描述


在这里插入图片描述


位操作:假设模拟一个人的每日签到情况:1为签到,0为未签到

setbit admin 1 1 //admin第一天签到状态1
bitcount admin //统计admin签到状态为1的次数

在这里插入图片描述


2、Hash类型

? 常用功能
//其实就是一个hash表
hset :添加一条hash类型数据
hget :获取一条hash类型数据
hmset :添加多条hash类型数据
hmget :获取多条hash类型数据
hgetAll :获取指定所有hash类型数据
hdel :删除指定hash类型数据(一条或多条)

hset Test value 100 //存放普通数据
hget Test value
hset Test json "{\"name\":\"lisi\",\"age\":30}" //存储json数据
hget Test json

在这里插入图片描述


3、List双向队列类型

? 常用功能
lpush :左添加()list类型数据
rpush :右添加()类型数据
lrange : 获取list类型数据start起始下标 end结束下标 包含关系
llen :获取条数
lrem :删除列表中几个指定list类型数据

//------------------------------------------------
--list双向队列
--0~-1-1代表最后
--rpop:尾部出队列
--lpop:头部出队列
--rpush:尾部添加
--rpop:头部添加
--lset:根据索引修改值
--blpop java n:堵塞n秒,出队时若为空则堵塞指定时间,有内容会立刻结束
--lpushx:对指定内容校验是否存在

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


4、Set集合类型

? 常用功能
sadd :添加set类型数据
smembers :获取set类型数据
scard :获取条数
srem :删除数据
//-------------------------------------------
--set求交集
--sinter a b :共同元素
--sinterstore xxx a b:存放至xxx
-- smemebers xxx:遍历某集合
--差集:sdiff a b :不同元素
--sdiffstore xxx a b :差集存放
--sunionstore xxx a b :并集运算
--判断是否存在 sismember a xx :xx再a中是否存在
--smove a b xx:将a中xx移动到b中
--srem a xx;删除a中xx
--sadd a xx:添加xx至a中

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


5、SortedSet排序集合类型

? 常用功能
sorted set是通过分数值来进行排序的,分数值越大,越靠后。
zadd :添加sorted set类型数据
zrange :获取sorted set类型数据
zcard :获取条数
zrem :删除数据
zadd需要将Float或者Double类型分数值参数,放置在值参数之前
//----------------------------------------
//可排序的
--sorted set
--zcount :统计范围内个数
--zincrby:增加(可以做排行榜)
--zrevrange :降序
--zrange:正序
//百度经纬度 一些地图的经纬度都是用redis存储

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


6、其他常用命令

Set存放json数据:

set json "{\"name\":\"lisi\",\"address\":\"shanghai\"}"

在这里插入图片描述


指定时间过期

EXPlRE <key> <ttl> :用于将键 key 的生存时间设置为 ttl 秒。
PEXPIRE <key> <ttl> :用于将键 key 的生存时间设置为 ttl 毫秒。
EXPIREAT <key> < timestamp> :用于将键 key 的过期时间设置为 timestamp 所指定的秒数时
间戳。
PEXPIREAT <key> < timestamp > :用于将键 key 的过期时间设置为 timestamp 所指定的毫秒
数时间戳。
TTL :获取的值为-1说明此 key 没有设置有效期,当值为-2时证明过了有效期。
//-------------------------------------------------------
set demo test ex 10 //过期时间10s -2代表过期 -1代表未设置过期时间
ttl demo //查看过期时间

方法一:

在这里插入图片描述


方法二:expire
在这里插入图片描述


  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 18:54:27  更:2021-11-16 18:56:30 
 
开发: 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 6:01:26-

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