热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Redis数据库✧入门篇

Redis数据库(入门篇)Redis数据库:非关系型数据库,即NoSql数据库,基于内存存储系统࿰

Redis数据库(入门篇)

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



目录

    • Redis数据库(入门篇)
      • 一、关系型数据库与非关系型数据库
        • 1、关系型数据库优缺点
          • ① 优点
          • ② 缺点
        • 2、非关系型数据库优缺点
          • ① 优点
          • ② 缺点
      • 二、在linux环境下安装Redis
        • 1、下载tar包解压并安装
          • ① 上传至Linux&解压tar包
        • 2、基本测试与配置
          • ①、启动服务器与客户端
          • ②、配置redis修改redis.conf文件
      • 二、常用五类数据结构
        • 1、String 类型
          • ✧ 常用功能
        • 2、Hash类型
          • ✧ 常用功能
        • 3、List双向队列类型
          • ✧ 常用功能
        • 4、Set集合类型
          • ✧ 常用功能
        • 5、SortedSet排序集合类型
          • ✧ 常用功能
        • 6、其他常用命令




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


1、关系型数据库优缺点


① 优点

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



② 缺点

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

Orcale,Sql Server,MySql,DB2



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


① 优点

-根据需要添加字段,不需要多表联查。仅需id取出对应的value
-适用于SNS(社会化网络服务软件。比如facebook,微博)
-严格上讲不是一种数据库,而是一种数据结构化存储方法的集合

② 缺点

-只适合存储一些较为简单的数据
-不合适复杂查询的数据
-不合适持久存储海量数据

K-V:Redis,Memcache
文档:MongoDB
搜索:Elasticsearch,Solr
可扩展性分布式: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 没有设置有效期&#xff0c;当值为-2时证明过了有效期。
//-------------------------------------------------------
set demo test ex 10 //过期时间10s -2代表过期 -1代表未设置过期时间
ttl demo //查看过期时间

方法一&#xff1a;

在这里插入图片描述


方法二&#xff1a;expire
在这里插入图片描述



推荐阅读
  • 阿里面试题解析:分库分表后的无限扩容瓶颈与解决方案
    本文探讨了在分布式系统中,分库分表后的无限扩容问题及其解决方案。通过分析不同阶段的服务架构演变,提出了单元化作为解决数据库连接数过多的有效方法。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Leetcode学习成长记:天池leetcode基础训练营Task01数组
    前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动 ... [详细]
  • WCF类型共享的最佳实践
    在使用WCF服务时,经常会遇到同一个实体类型在不同服务中被生成为不同版本的问题。本文将介绍几种有效的类型共享方法,以解决这一常见问题。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • PHP 使用 Cookie 进行访问授权的方法
    本文介绍了如何使用 PHP 和 Cookie 实现访问授权,包括表单验证、数据库查询和会话管理等关键步骤。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 本文详细介绍了数据库并发控制的基本概念、重要性和具体实现方法。并发控制是确保多个事务在同时操作数据库时保持数据一致性的关键机制。文章涵盖了锁机制、多版本并发控制(MVCC)、乐观并发控制和悲观并发控制等内容。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文深入探讨了如何选择适合业务需求的MySQL存储引擎,详细解析了不同存储引擎的特点、适用场景及其在数据存储和管理中的优势。通过对比InnoDB、MyISAM等主流引擎,为读者提供了全面的技术指导和专业建议,帮助开发者在实际应用中做出明智的选择。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
author-avatar
mobiledu2502921803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有