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
在这里插入图片描述


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

每日小新

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

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

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

打赏作者

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

抵扣说明:

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

余额充值