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,客户端可以清空事务队列,并放弃执⾏事务。
例:正常执⾏:
放弃事务