Redis基本用法

 

 

一.NoSql

1.什么是NoSql

NoSQL不仅仅是No SQL,还是Not only SQL,SQL代表传统关系数据库,NoSQL显然是针对传统关系数据库的补充和升级。

NoSQL分类:

(1)Key-value stores键值存储, 保存keys+BLOBs (二进制大对象Binary Large OBjects)

(2)Table-oriented 面向表列, 主要有Google的BigTable和Cassandra.

(3)Document-oriented面向文档, 文本是一种类似XML文档,MongoDB 和 CouchDB

(4)Graph-oriented 面向图论. 如Neo4J

2.为什么使用NoSql

参考https://www.cnblogs.com/lukelook/p/11135209.html

二.Redis安装和使用

1.Redis简介

中文官网:http://www.redis.cn/

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。

2.Window上安装Redis

1)本教程使用3.2版本,下载Redis-x64-3.2.100.zip,解压到D盘image.png

2)点击redis-server.exe运行redis服务器,如果出现闪关情况,是没有读取到redis.windows.conf配置文件,解决方案如下:

在D:\DevSoftware\Redis-x64-3.2.100目录下打开cmd界面,执行redis-server.exe redis.windows.conf(中间空格),回车

Redis基本用法_第1张图片

出现如上图所示的图案就表示服务启动成功了,启动后不能关闭服务窗口

3)点击redis-cli.exe运行客户端

Redis基本用法_第2张图片

set命令设置key和value,get命令通过key获取value值

Redis基本用法_第3张图片

3.Linux上安装Redis

1)使用Xftp将redis-3.2.9.tar.gz上传到Linux的home下的Soft

Redis基本用法_第4张图片

2)进入到Soft目录执行

tar -zxvf redis-3.2.9.tar.gz -C /usr/local/

3)cd到/usr/local/,可以看到redis解压后的目录

Redis基本用法_第5张图片

4)cd到redis-3.2.9

Redis基本用法_第6张图片

5)cd到src目录,编译Redis,需要使用到gcc编译器

Redis基本用法_第7张图片

6)cd到src上级目录,执行make命令

Redis基本用法_第8张图片

7)image.png安装成功

可以执行make install,这个命令是让redis可以在任意位置执行。

我们选择在src文件下执行,绿色的代表可以执行

Redis基本用法_第9张图片

8)执行 ./redis-server(前台启动,不能再执行其他命令)

Redis基本用法_第10张图片

9)后台启动,命令:./redis-server & 执行成功后回车,程序界面退出

或者修改redis.conf文件daemonize yes就不需要&

Redis基本用法_第11张图片

10)通过ps命令查看redis: ps -ef | grep redis

image.png

11)执行 ./redis-cli命令 启动客户端

image.png

4.关闭客户端redis

Redis基本用法_第12张图片

三.Redis客户端

1.redis命令行客户端

Redis基本用法_第13张图片

2.redis远程客户端

 下载安装桌面客户端

Redis基本用法_第14张图片

使用客户端

Redis基本用法_第15张图片

打开客户端,访问不了虚拟机上的Redis服务,修改Redis的网络安全策略,并关闭Linux防火墙(命令:systemctl stop firewalld)才能访问。同时修改redis.conf配置文件。

1)命令:vi redis.conf,编辑配置文件

2)输入: /bind 查找bind 按n键自上而下查找

Redis基本用法_第16张图片

找到并注释,按i键进入编辑,同时将protected-mode yes 保护模式改为no。

3)保存退出:ESC后,shit+:后,wq保存。

注:redis.conf文件生效的话,每次启动时必须加上所处位置的redis.conf

./redis-server ../redis.conf &

四.基本操作命令

1.沟通命令

image.png

2.dbsize

Redis基本用法_第17张图片

3.databases

Redis基本用法_第18张图片

4.切换库

Redis基本用法_第19张图片

5.删除当前库数据

Redis基本用法_第20张图片

6.退出

Redis基本用法_第21张图片

五.Redis操作key的命令

1.keys

Redis基本用法_第22张图片

Redis基本用法_第23张图片

尽量不要使用keys *

2.exists

Redis基本用法_第24张图片

3.expire

可以用来解决验证码

Redis基本用法_第25张图片

4.ttl

Redis基本用法_第26张图片

5.type

Redis基本用法_第27张图片

6.del

Redis基本用法_第28张图片

六.Redis数据类型

1.string

可以存储大文本

Redis基本用法_第29张图片

2.hash

存放对象信息,用户信息session问题

Redis基本用法_第30张图片

Redis基本用法_第31张图片

3.list

Redis基本用法_第32张图片

4.set

Redis基本用法_第33张图片

5.zset

Redis基本用法_第34张图片

七.Redis数据类型操作命令

1.string

1)基本命令

Redis基本用法_第35张图片

Redis基本用法_第36张图片

incr操作时原子性的,可以做全局的计数器

Redis基本用法_第37张图片

decr也是原子操作

Redis基本用法_第38张图片

Redis基本用法_第39张图片

2)常用命令

Redis基本用法_第40张图片

Redis基本用法_第41张图片

Redis基本用法_第42张图片

Redis基本用法_第43张图片

Redis基本用法_第44张图片

2.Hash

1)基本命令

Redis基本用法_第45张图片

Redis基本用法_第46张图片

Redis基本用法_第47张图片

Redis基本用法_第48张图片

Redis基本用法_第49张图片

Redis基本用法_第50张图片

Redis基本用法_第51张图片

2)常用命令

Redis基本用法_第52张图片

Redis基本用法_第53张图片

Redis基本用法_第54张图片

3.List

image.png

1)基本命令

Redis基本用法_第55张图片

 

Redis基本用法_第56张图片

image.png

Redis基本用法_第57张图片

Redis基本用法_第58张图片

2)常用命令

Redis基本用法_第59张图片

Redis基本用法_第60张图片

Redis基本用法_第61张图片

4.Set

Redis基本用法_第62张图片

1)基本用法

Redis基本用法_第63张图片

image.png

image.png

image.png

image.png

Redis基本用法_第64张图片

Redis基本用法_第65张图片

2)常用命令

Redis基本用法_第66张图片

count正数,结果不重复

count负数,结果有可能重复

Redis基本用法_第67张图片

5.zset

Redis基本用法_第68张图片

1)基本命令

Redis基本用法_第69张图片

八.高级话题

8.1 Redis事务

MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

EXEC 命令负责触发并执行事务中的所有命令:

  • 如果客户端在使用 MULTI 开启了一个事务之后,却因为断线而没有成功执行 EXEC ,那么事务中的所有命令都不会被执行。
  • 另一方面,如果客户端成功在开启事务之后执行 EXEC ,那么事务中的所有命令都会被执行。

 

8.1.1 事务操作的命令

Redis基本用法_第70张图片

Redis基本用法_第71张图片

Redis基本用法_第72张图片

Redis基本用法_第73张图片

8.1.2 事务的实现

redis没有回滚的功能

Redis基本用法_第74张图片

Redis基本用法_第75张图片

Redis基本用法_第76张图片

Redis基本用法_第77张图片Redis基本用法_第78张图片

Redis基本用法_第79张图片

Redis基本用法_第80张图片

Redis基本用法_第81张图片

Redis基本用法_第82张图片

Redis基本用法_第83张图片

8.2 持久化

8.2.1 持久化概述

Redis基本用法_第84张图片

8.2.2 持久化方式

Redis基本用法_第85张图片

Redis基本用法_第86张图片

image.png

Redis基本用法_第87张图片

 

Redis基本用法_第88张图片

 

Redis基本用法_第89张图片

Redis基本用法_第90张图片

aof是文本文件,可以用vi修改。如果redis启动读取aof有问题时,可以修改aof文件删除错误的命令。

8.3 主从复制

8.3.1 主从复制

Redis基本用法_第91张图片

Redis基本用法_第92张图片

Redis基本用法_第93张图片

Redis基本用法_第94张图片

 

Redis基本用法_第95张图片

拷贝:cp redis.conf redis6388.conf

清空redis6388.conf内容:> redis6388.conf

Redis基本用法_第96张图片

Redis基本用法_第97张图片

Redis基本用法_第98张图片

image.png

Redis基本用法_第99张图片

启动服务

Redis基本用法_第100张图片

info replication查看服务信息

image.png

从服务器是不能写操作,lpop取操作也是不允许的。

Redis基本用法_第101张图片

Redis基本用法_第102张图片

 

Redis基本用法_第103张图片

image.png

在6389执行slaveof no one

Redis基本用法_第104张图片

6389已经成为主服务器,但是6390不清楚,6390执行 slaveof ip port 命令

Redis基本用法_第105张图片

当6388重新启动时,需要将其挂载到新的master上,执行 slaveof ip port 命令,

这样就只有一个主服务器。

8.3.2 高可用Sentinel哨兵

Redis基本用法_第106张图片

Redis基本用法_第107张图片

Redis基本用法_第108张图片

哨兵系统必须是奇数个,至少3个,因为它采用少数服从多数的机制,如上图,3个哨兵系统同时监控Master,心跳模式,当发现Master宕机了,哨兵开始投票,第一个投1票,第二个投1票,根据少数服从多数,第三个就没必要投票,哨兵将Slave中选择一个设置为Master。

哨兵的配置文件

Redis基本用法_第109张图片

哨兵的运行命令

Redis基本用法_第110张图片

Redis基本用法_第111张图片

Redis基本用法_第112张图片

Redis基本用法_第113张图片

36380示例,其他2个就不截图了

Redis基本用法_第114张图片

关闭redis Master服务器,sentinel自动将slave升级为Master(需要等待几秒)

Redis基本用法_第115张图片

8.4 安全设置

Redis基本用法_第116张图片

Redis基本用法_第117张图片

打开requirepass 后面设置密码

设置密码后,客户端访问需要输入密码:./redis-cli -a ***

或者用auth ***

Redis基本用法_第118张图片

Redis基本用法_第119张图片

 

你可能感兴趣的:(NoSql,redis)