Redis安全性和事务处理

1.安全性 设置密码


 
编辑文件 修改redis.conf
vi  /usr/local/redis/redis-2.8.19/redis.conf
修改requirepass 密码
esc:wq


vi编辑器查询
esc:/单词

重启redis
pkill  redis-server
/usr/local/bin/redis-server    /usr/local/redis/redis-2.8.19/redis.conf


登录后授权:
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 密码
OK
127.0.0.1:6379> keys *

登录时输入密码:
127.0.0.1:6379> exit
[root@localhost bin]# ./redis-cli -a 密码
127.0.0.1:6379> keys list*


2.事务处理

跟传统数据库的事务不一样


multi 开始事务
queued  队列
exec  执行事务
discard 取消事务 回滚事务关闭



127.0.0.1:6379> multi  --开始事务
OK
127.0.0.1:6379> set age 10
QUEUED
127.0.0.1:6379> set age 30
QUEUED
127.0.0.1:6379> exec  --执行事务
1) OK
2) OK
127.0.0.1:6379> get age
"30"
 
127.0.0.1:6379> multi --开始事务
OK
127.0.0.1:6379> set age 22
QUEUED
127.0.0.1:6379> set age 33
QUEUED
127.0.0.1:6379> discard  --回滚 
OK
127.0.0.1:6379> get age
"30"



127.0.0.1:6379> set name dingsai  --字符串
OK
127.0.0.1:6379> incr name    --自增报错
(error) ERR value is not an integer or out of range
127.0.0.1:6379> multi     --开始事务
OK
127.0.0.1:6379> incr age     --自增年龄
QUEUED
127.0.0.1:6379> incr name    --自增姓名
QUEUED
127.0.0.1:6379> exec         --执行事务
1) (integer) 31
2) (error) ERR value is not an integer or out of range
结果没有全部回滚,年龄继续自增了




Redis乐观锁实例:两个session 开启监控watch和事务multi  对同一个key操作。
当连接断开watch和multi都自动被取消。exec,discard,unwatch都会清除连接中的所有监视。
 
WATCH key [key ...]:
标记所有指定的key 被监视起来,在事务中有条件的执行(乐观锁)。

session1   开启事务 和监控没提交
127.0.0.1:6379> get age
"33"
127.0.0.1:6379> watch age
OK
127.0.0.1:6379> multi

session2   直接提交
127.0.0.1:6379> set age 44
OK

session1   已经被提交 事务提交未执行
127.0.0.1:6379> set age 20
QUEUED
127.0.0.1:6379> exec
(nil)
127.0.0.1:6379> get age
"44"

















你可能感兴趣的:(数据库)