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(中间空格),回车

image.png

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

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

image.png

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

image.png

3.Linux上安装Redis

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

image.png

2)进入到Soft目录执行

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

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

image.png

4)cd到redis-3.2.9

image.png

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

image.png

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

image.png

7)image.png安装成功

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

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

image.png

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

image.png

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

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

image.png

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

image.png

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

image.png

4.关闭客户端redis

image.png

三.Redis客户端

1.redis命令行客户端

image.png

2.redis远程客户端

 下载安装桌面客户端

image.png

使用客户端

image

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

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

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

image.png

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

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

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

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

四.基本操作命令

1.沟通命令

image.png

2.dbsize

image.png

3.databases

image.png

4.切换库

image.png

5.删除当前库数据

image.png

6.退出

image.png

五.Redis操作key的命令

1.keys

image.png

image.png

尽量不要使用keys *

2.exists

image.png

3.expire

可以用来解决验证码

image.png

4.ttl

image.png

5.type

image.png

6.del

image.png

六.Redis数据类型

1.string

可以存储大文本

image.png

2.hash

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

image.png

image.png

3.list

image.png

4.set

image.png

5.zset

image.png

七.Redis数据类型操作命令

1.string

1)基本命令

image.png

image.png

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

image.png

decr也是原子操作

image.png

image.png

2)常用命令

image.png

image.png

image.png

image.png

image.png

2.Hash

1)基本命令

image.png

image.png

image.png

image.png

image.png

image.png

image.png

2)常用命令

image.png

image.png

image.png

3.List

image.png

1)基本命令

image.png

 

image.png

image.png

image.png

image.png

2)常用命令

image.png

image.png

image.png

4.Set

image.png

1)基本用法

image.png

image.png

image.png

image.png

image.png

image.png

image.png

2)常用命令

image.png

count正数,结果不重复

count负数,结果有可能重复

image.png

5.zset

image.png

1)基本命令

image.png

八.高级话题

8.1 Redis事务

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

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

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

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

 

8.1.1 事务操作的命令

image.png

image.png

image.png

image.png

8.1.2 事务的实现

redis没有回滚的功能

image.png

image.png

image.png

image.pngimage.png

image.png

image.png

image.png

image.png

image.png

8.2 持久化

8.2.1 持久化概述

image.png

8.2.2 持久化方式

image.png

image.png

image.png

image.png

 

image.png

 

image.png

image.png

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

8.3 主从复制

8.3.1 主从复制

image.png

image.png

image.png

image.png

 

image.png

拷贝:cp redis.conf redis6388.conf

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

image.png

image.png

image.png

image.png

image.png

启动服务

image.png

info replication查看服务信息

image.png

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

image.png

image.png

 

image.png

image.png

在6389执行slaveof no one

image.png

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

image.png

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

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

8.3.2 高可用Sentinel哨兵

image.png

image.png

image.png

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

哨兵的配置文件

image.png

哨兵的运行命令

image.png

image.png

image.png

image.png

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

image.png

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

image.png

8.4 安全设置

image.png

image.png

打开requirepass 后面设置密码

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

或者用auth ***

image.png

image.png

 

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Redis数据库是一个内存数据库,通过key-value键值对的方式进行数据存储。它的优点包括访问速度快、适用于缓存系统和存储大量活跃数据,可以提高网站的响应速度。\[1\]在Java中,有两个比较出名的连接Redis的驱动包,分别是Jedis和Redisson,我们可以使用Jedis来进行程序操作Redis。\[3\]以下是一些基本Redis操作方法: - 使用`new Jedis(host, port)`创建Jedis对象,其中host是Redis服务器地址,port是Redis服务端口。 - 使用`set(key, value)`方法设置字符串类型的数据。 - 使用`get(key)`方法获取字符串类型的数据。 - 使用`hset(key, field, value)`方法设置哈希类型的数据。 - 使用`hget(key, field)`方法获取哈希类型的数据。 - 使用`lpush(key, values)`方法设置列表类型的数据。 - 使用`lpop(key)`方法从列表左侧弹出元素。 - 使用`rpop(key)`方法从列表右侧弹出元素。 - 使用`del(key)`方法删除指定的key。\[3\] #### 引用[.reference_title] - *1* [redis基本操作](https://blog.csdn.net/m0_50782114/article/details/128119748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Redis基本使用!](https://blog.csdn.net/weixin_50769390/article/details/127134134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值