Redis(入门学习四)

Redis⾼级命令

1.key操作

2.连接操作相关的命令

3.服务端相关命令

4.Redis安全性

因为Redis速度相当快,⼀台⽐较好的服务器下,⼀个外部⽤户在⼀秒内可以进⾏10多万次的密码尝试,这就要求
你必须设定⾮常强⼤的密码来防⽌暴⼒破解。

1. 我们可以通过以下命令查看是否设置了密码验证:

默认情况下requirepass参数是空的,这就意味着你⽆需通过密码验证就可以链接到redis服务。 

2.你可以通过以下命令来修改参数:

也可以编辑配置⽂件进⾏修改密码,vi redis.conf 找到下⾯进⾏修改保存

设置密码后,客户端连接redis服务就需要密码验证,否则⽆法执⾏命令:

 也可以在登录时直接进⾏授权:

5.redis事物

基本概念:

1. 什么是Redis的事务?

简单理解,可以认为redis事务是⼀些列redis命令的集合,并且有如下两个特点:

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

2. 事务的性质ACID

⼀般来说,事务有四个性质称为ACID,分别是原⼦性,⼀致性,隔离性和持久性。

(1)原⼦性atomicity:redis事务保证事务中的命令要么全部执⾏要不全部不执⾏。有些⽂章认为redis事务对于执⾏
错误不回滚违背了原⼦性,是偏颇的。
(2)⼀致性consistency:redis事务可以保证命令失败的情况下得以回滚,数据能恢复到没有执⾏之前的样⼦,是保
证⼀致性的,除⾮redis进程意外终结。
(3)隔离性Isolation:redis事务是严格遵守隔离性的,原因是redis是单进程单线程模式,可以保证命令执⾏过程中
不会被其他客户端命令打断。
(4)持久性Durability:redis事务是不保证持久性的,这是因为redis持久化策略中不管是RDB还是AOF都是异步执⾏
的,不保证持久性是出于对性能的考虑。

3. Redis事务的错误

使⽤事务时可能会遇上以下两种错:

(1)⼊队错误:事务在执⾏ EXEC 之前,⼊队的命令可能会出错。⽐如说,命令可能会产⽣语法错误(参数数量错
误,参数名错误,等等),或者其他更严重的错误,⽐如内存不⾜(如果服务器使⽤ maxmemory 设置了最⼤
内存限制的话)。
(2)执⾏错误:命令可能在 EXEC 调⽤之后失败。举个例⼦,事务中的命令可能处理了错误类型的键,⽐如将列表
命令⽤在了字符串键上⾯,诸如此类。

Redis事务操作

Redis事务是通过 MULTI, EXEC, DISCARD和 WATCH四个原语实现的。

MULTI命令⽤于开启⼀个事务,它总是返回OK。

MULTI执⾏之后,客户端可以继续向服务器发送任意多条命令,这些命令不会⽴即被执⾏,⽽是被放到⼀个队列中,当EXEC命令被调⽤时,所有队列中的命令才会被执⾏。

另⼀⽅⾯,通过调⽤ DISCARD,客户端可以清空事务队列,并放弃执⾏事务。

例:正常执⾏:

放弃事务

猜你喜欢

转载自blog.csdn.net/qq_40180411/article/details/85873879