非关系数据库之redis入门到实战(1)Redis高级应用

1.安全性

 

设置密码:

vi /alidata/server/redis-3.2.1/redis.conf

1
[root@iZ28c6xv2w0Z redis-3.2.1]# vi /alidata/server/redis-3.2.1/redis.conf

找到:requirepass

1
2
# requirepass foobared
requirepass 123456

重新启动数据库:

1
2
[root@iZ28c6xv2w0Z redis-3.2.1]# pkill redis-server
[root@iZ28c6xv2w0Z src]# ./redis-server /alidata/server/redis-3.2.1/redis.conf

进入客户端并执行命令,提示没有权限:

1
2
3
[root@iZ28c6xv2w0Z src]# ./redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

输入密码:

aoth 123456

1
2
3
4
5
6
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set name xiaoming
OK
127.0.0.1:6379> keys *
1) "name"

登录时即输入密码:

./redis-cli -a 123456

添加-a输入密码

1
2
3
[root@iZ28c6xv2w0Z src]# ./redis-cli -a 123456
127.0.0.1:6379> keys *
1) "name"

2.主从复制

3.事务处理

开启事务:

multi

其他命令..

执行:

exec

1
2
3
4
5
6
7
8
9
10
11
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set age 19
QUEUED
127.0.0.1:6379> set age 20
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
127.0.0.1:6379> get age
"20"

取消事务(回滚):

discard

1
2
3
4
5
6
7
8
9
10
127.0.0.1:6379> get age
"20"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set age 17
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> get age
"20"

乐观锁:

watch age        开启监视

unwatch           清除所有监视,断开连接也会清除所有监视

4.持久化机制

snapshotting方式(默认):

默认名为dump.rdb

1
2
3
save 900 1    #900秒中有一个键被修改保存一次
save 300 10    #300秒中有十个健被修改保存一次
save 60 10000    #60秒中有10000个健被修改保存一次

aof方式:

配置文件中:

1
[root@iZ28c6xv2w0Z src]# vi /alidata/server/redis-3.2.1/redis.conf

appendonly yes    #启用aof持久化

appendfsync always    #收到命令立即写入磁盘,最慢,但保证完全持久化

appendfsync everysec    #每秒写入磁盘一次,性能与持久化折中

appendfsync no    #完全依赖os,性能最好,持久化没保证

1
2
3
# appendfsync always
appendfsync everysec
# appendfsync no

配置完成后重启redis

在src下会有一个名为 appendonly.aof 文件

5.发布订阅消息

发布消息:

publish tv1 xiaoming

返回的值为监听人数。

1
2
127.0.0.1:6379> publish tv1 xiaoming
(integer) 1

 

监听消息:

subscribe tv1 tv2

在客户端二收到的消息:

1
2
3
4
5
6
7
8
127.0.0.1:6379> subscribe tv1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "tv1"
3) (integer) 1
1) "message"
2) "tv1"
3) "xiaoming"

6.虚拟内存的使用

虚拟内存配置:

1
[root@iZ28c6xv2w0Z src]# vi /alidata/server/redis-3.2.1/redis.conf

添加如下配置:

vm-enabled yes    #开启vm功能

vm-swap-file /tmp/redis.swap    #交换出来的value保存的文件路径

vm-max-memory 1000000    #redis使用的最大内存上限

vm-page-size 32    #每个页面的大小32字节

vm-pages 134217728    #最多使用多少页面

vm-max-threads 4    #用于执行value对象换入的工作线程数量

配置好后重启

原文地址:https://www.cnblogs.com/huanghanyu/p/13807828.html