老版本没有用户名,只有密码
Redis6已经有用户名,默认用户名default

1.列出所有用户,默认只有default超级用户,并查看default用户相关信息

>ACL LIST                      #列出所有用户,默认用户是default
1) "user default on #9cd9ab402f4115ed9921a7e4f7fc89330c8fe9283a8b1cdef203f7a7e622c68f ~* &* +@all"     #default用户呢是有所有权限
>ACL getuser default     #查看default用户的相关信息, default对所有key,所有命令均有权限,最高权限,是默认用户
 1) "flags"
 2) 1) "on"
    2) "allkeys"                            #所有的key都有权限
    3) "allchannels"
    4) "allcommands"
 3) "passwords"
 4) 1) "9cd9ab402f4115ed9921a7e4f7fc89330c8fe9283a8b1cdef203f7a7e622c68f"
 5) "commands"
 6) "+@all"                                 #所有的命令都有权限
 7) "keys"
 8) 1) "*"
 9) "channels"
10) 1) "*"

2.创建用户并给用户授权

> ACL CAT                                   #查看所有的权限
 1) "keyspace"
 2) "read"
 3) "write"
 4) "set"
 5) "sortedset"
 6) "list"
 7) "hash"
 8) "string"
 9) "bitmap"
10) "hyperloglog"
11) "geo"
12) "stream"
13) "pubsub"
14) "admin"
15) "fast"
16) "slow"
17) "blocking"
18) "dangerous"
19) "connection"
20) "transaction"
21) "scripting"

案例:创建test用户只给一个get命令权限、读权限、并且只能get是name开头的key: name*
使用default默认用户登录redis

redis-cli -a redispwd
> set name1 n1
> set name2 n2
> set name3 n3
>set k1 v1
>set k2 v2
>ACL SETUSER test on >testpwd ~name* +get               #创建test用户,密码:testpwd   赋给get命令的权限,只对name开头的有get权限
>ACL SETUSER test on >testpwd ~name* +@read           #给test用户增加read权限,设置只对name开头的key有read权限
>ACL getuser test                                                        #查看test用户的相关信息