redis使用sysc超时_Redis详解(二)

一、redis认证

二、redis事务

三、Connection&server相关命令

四、Redis的发布与订阅//充当mq的功能

五、Redis持久化

六、redis复制

七、master-slave实现

八、sentinal哨兵

九、redis限制

十、redis性能测试

一、redis认eredis认证:

vim /etc/redis.conf

requirepass redispass //密码

[root@node1 ~]# systemctl restart redis

[root@node1 ~]# redis-cli -h 192.168.4.106

192.168.4.106:6379> select 0

(error) NOAUTH Authentication required.

192.168.4.106:6379> auth redispass

OK

192.168.4.106:6379> select 0

OK

清空数据库

flushdb:清空当前库

flushall:清空所有库

二、redis事务1.MULTI用来组装一个事务;

2.EXEC用来执行一个事务;

3.DISCARD用来取消一个事务;

4.WATCH用来监视一些key,一旦这些key在事务执行之前被改变,则取消事务的执行。

我们来看一个MULTI和EXEC的例子:

RDBMS的事务:一组相关操作,是原子性的:满足ACID :原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

redis的事务:可以将多个命令绑定在一起,顺序执行。通过multi,exec,watch等命令实现事务功能;

在事务执行过程中,redis不会中断当前事务去执行其他client的指令。

127.0.0.1:6379> multi

OK

127.0.0.1:6379> set ip 192.168.0.1

QUEUED

127.0.0.1:6379> set port 800 //放到队列中

QUEUED

127.0.0.1:6379> exec //一起执行

1) OK

2) OK

watch:在事务执行过程中,施加乐观锁 //不支持回滚

在exec之前,监视 指定的数据key是否在 multi和exec之间发生修改操作,有变动则不予执行事务

事务中关联的 键 的监视操作。

//乐观锁,只是看他是否被修该,一旦被修改了,就不予执行。在事务过程中仍然可以被修改

redis不支持回滚操作,这是和mysql事务最大的区别

事务有10个操作,第5个命令错误。redis事务会忽略第5个错误,执行到最后。

redis目标:简单、高效

redis的原子性:事务队列中的任务,要么全部执行,要么全都不执行

redis的一致性:在检查入队时的一致性,例如输入为错误命令 //语法级别

redis的隔离性:单线程,在执行事务中,不会执行其他操作,但是可以接受用户请求到queue中

redis的持久性:依赖于server是否启用持久化功能

rdb或者aof //快照和追加到文件

示例:乐观锁终端1:

127.0.0.1:6379> watch ip

OK

127.0.0.1:6379> multi

OK

127.0.0.1:6379> set ip 10.0.0.1

QUEUED

127.0.0.1:6379> get ip

QUEUED

终端2:

127.0.0.1:6379> set ip 172.16.100.1

OK

127.0.0.1:6379> get ip

"172.16.100.1"

终端1:

127.0.0.1:6379> exec

(nil)  //事务执行失败

redis的一致性************

127.0.0.1:6379> multi

OK

127.0.0.1:6379> set jsidfjd

(error) ERR wrong number of arguments for 'set' command

127.0.0.1:6379> exec

(error) EXECABORT Transaction discarded because of previous errors.

redis的原子性************

127.0.0.1:6379> multi

OK

127.0.0.1:6379> set ip 10.0.0.1

QUEUED

127.0.0.1:6379> set aa

(error) ERR wrong number of arguments for 'set' command

127.0.0.1:6379> exec    //因为有语法错误,因此都没有执行

(error) EXECABORT Transaction discarded because of previous errors.

三、Connection&server相关命令help @connectionsauth:

ping: 验证服务器是否在线

echo “hello redis"

quit:

select:选择指定的DB

help @serverbgsave:异步存储数据到disk

client setname: 为连接设置名字 //只能为自己修改名字

client getname :获取当前客户端的链接名

client kill ip:port //kill client的一个连接

client list :查看链接

config get  //redis的多数配置都可以在运行时修改

config set //配置file中的参数 ,可以在内存中修改

config rewrite //在内存中修改的操作,写入到配置文件

info //服务器的所有统计数据

info Memory //指定只看内存信息

info Cluster //获取指定section的内容

config resetstat //重置info的所有数据

dbsize:    限制所有的键的数量

bgsave: //

save:

lastsave:获取最近一次成功保存到disk的 timestamp

monitor:实时监控接受到的请求

shutdown [nosave/save ]:同步所有数据到disk后,关闭

slaveof :配置主从

slowlog:管理慢查询日志

sync:复制功能的内建命令 //同步master

time:获取当前server时间

四、Redis的发布与订阅//充当mq的功能发布与订阅:发布者在订阅者订阅之前的发布数据默认是收取不到的

redis的发布与订阅功能:(publish/subscribe)

生产者把信息发布在指定频道上,订阅者从指定的频道去订阅自己关注的信息即可

SUBSCRIBE:订阅一个或多个 队列/频道

unsubscribe 退订此前订阅的频道

psubscribe "new.i[to]" //订阅2个频道

psubscribe "new.*" //也可以

示例:发布与订阅终端1:

127.0.0.1:6379> SUBSCRIBE news  //可以同时订阅多个channel

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "new

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值