redis

1.NOSQL

1.1 什么是NOSQL

NOSQL(not only sql) 不仅是sql,它是所有非关系数据库的一种统称。

1.2. NOSQL和RDBMS的区别

RDBMS --关系型数据库:

1.高度组织化结构化数据。 --表结构 列 列....

2.结构化查询语言(SQL) sql语句

3.数据和关系都存储在单独的表中。

4.数据操纵语言DML,数据定义语言DDL

5.严格的一致性. ACID 原子性 隔离性 持久性 一致性

6.基于事务----都支持事务

NoSQL

1.代表着不仅仅是SQL

2.没有声明性查询语言

3.键 - 值对存储。

4.非结构化和不可预知的数据 字符串 集合 对象 队列

5.高性能,高可用性和可伸缩性。 ----便于搭建集群---挂载

1.3NOSQL的产品

1.redis----结构基于key和value的形式

2.mongodb---介于关系型数据库和非关系数据库之间

2.redis

2.1redis简介

​ Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API .[很多语言可以连接该redis]

​ Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构[存放的数据类型],例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。

2.2redis特点

1.Redis读取的速度是110000次/s,写的速度是81000次/s。 
2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4.持久化,默认在内存中进行计算。可以持久化到磁盘。
5. 主从复制(集群)
5.官方不支持window系统,但是又第三方版本。 linux系统。

2.3redis的安装

(1)把redis软件放入centos系统中并解压
在这里插入图片描述
在这里插入图片描述

使用 tar -zxvf xxxxxxxxx.tar.gz 解压

(2)进入解压好的目录里进行编译

make

(3)安装(可以在任意目录下使用redis脚本命令)

(4) 启动redis (在配置文件所在的目录)
在这里插入图片描述

因为我配置了后台运行所以启动了但是并没有显示出来

在这里插入图片描述
这里正常显示的是
在这里插入图片描述

2.4redis客户端连接redis服务器

redis-cli 连接本地redis服务
redis-cli -h IP地址 -p 端口号
例如我的 redis-cli -h 192.168.109.130 -p 6379
-h: redis服务器主机的ip
-p: redis服务器的端口号

在这里插入图片描述

2.5关于redis的配置文件redis.conf

进入redis解压目录即可看到redis配置文件 redis.conf
在这里插入图片描述
双击或者vi进入(建议双击进入,vi情况不好找到和修改)

这里配置的是是否开启后台运行
在这里插入图片描述

这里设置的是允许远程连接
在这里插入图片描述
尝试连接
在这里插入图片描述

查看redis进程
ps -ef | grep redis
强行关闭redis服务
kill -9 进程号
正常关闭是先shutdown然后exit	

3.安装redis的客户端的UI软件

我使用的是redisplus
在这里插入图片描述
(1)新建一个连接
在这里插入图片描述

连接前提 window----linux 防火墙关闭。redis配置允许远程连接

在这里插入图片描述

默认是空的,我这里是有数据在里面所以DB0有数据

4.redis常用命令

http://www.redis.net.cn/order/

http://redisdoc.com/

4.1 关于key的命令

set key value
keys *: 查看redis中所有的key
del key [key…]: 删除指定key的内容
expire key seconds: 为指定的key设置过期时间
ttl key: 查看当前的key的剩余时间
exists key: 判断指定的key是否存在 返回0表示不存在指定的key 否则表示存在指定的key

4.2 关于数据库的命令

默认redis支持数据库的个数为16个

select n: 选择数据库

flushdb: 清空当前库

flushall: 清空所有库的数据

4.3 redis支持的数据类型

这里所说的数据类型----指的是value的数据类型。

String 字符串类型

Hash 对象类型

List: 队列类型

Set: 集合类型

ZSet: 有序集合类型.

不同的数据类型有不同的命令。

4.3.1 String 字符串类型

表示它的value为字符串类型,它是使用最多的类型,因为任意数据类型都可以转化为字符串。

value存储值的大小:512M.

1. set key value: 设置指定 key 的值

在这里插入图片描述

2. get key 获取指定 key 的值。

在这里插入图片描述

3. mset key value key value .... 同时设置一个或多个 key-value 对。

4. mget key key ....  获取所有(一个或多个)给定 key 的值。

在这里插入图片描述

5. incr key 	将 key 中储存的数字值增一。 应用场景:点赞 收藏

在这里插入图片描述

6. decr key   	将 key 中储存的数字值减一

在这里插入图片描述

7. setnx key value 只有在 key 不存在时设置 key 的值。

在这里插入图片描述

4.3.2 Hash类型

表示redis的value类型为Hash类型,一般存放对象数据。

1. hset key field value      将哈希表 key 中的字段 field 的值设为 value 。

2. hget key field   获取存储在哈希表中指定字段的值/td>

在这里插入图片描述

3. hgetall key   获取在哈希表中指定 key 的所有字段和值

在这里插入图片描述

4. hkeys  key   获取所有哈希表中的字段

在这里插入图片描述

5.hvals key  	获取哈希表中所有值

在这里插入图片描述

8.3.3 list 队列

value 可以是一个队列—该队列的值可以重复而且有序。

1. LPush key  value value value...	将一个或多个值插入到列表头部

在这里插入图片描述

2. lrange key start end   获取列表指定范围内的元素

在这里插入图片描述

Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

在这里插入图片描述

lpop key   移出并获取列表的第一个元素

在这里插入图片描述

8.3.4 set集合类型

无序不允许重复.

1. sadd key value value ....向集合添加一个或多个成员

在这里插入图片描述

smemebers key 返回集合中的所有成员

在这里插入图片描述

 SRANDMEMBER KEY 随机获取一个或多个元素

在这里插入图片描述

sinter key key: 返回给定所有集合的交集

在这里插入图片描述

8.3.5 sort set有序集合

和上面的set区别在于多了一个score分数列----- 排行耪

zadd key  score value score value :向有序集合添加一个或多个成员,或者更新已存在成员的分数

在这里插入图片描述

zrange key    	通过索引区间返回有序集合成指定区间内的成员

在这里插入图片描述

ZREVRANGE key start end 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值