第四章、Redis的基本用法
Redis获取帮助文档
登录客户端输入help,如下示例:
注:客户端命令不区分大小写
[root@CentOS7 ~]# redis-cli 127.0.0.1:6379> help redis-cli 6.2.5 To get help about Redis commands type: "help @<group>" to get a list of commands in <group> "help <command>" for help on <command> "help <tab>" to get a list of possible help topics "quit" to exit To set redis-cli preferences: ":set hints" enable online hints ":set nohints" disable online hints Set your preferences in ~/.redisclirc
查看有哪些组
127.0.0.1:6379> help @ 按Tab键切换不同的组
切换数据库(名称空间)
127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]>
定义一个键需要遵循:
可以使用ASCII字符
键的长度不要过长,键的长度越长则消耗的空间越多
在同一个库中(名称空间),键的名称不得重复,如果复制键的名称,实际上是修改键中的值
在不同的库中(名称空间),键的同一个名称可以重复
键可以实现自动过期
Strings的操作:
设置一个值:
127.0.0.1:6379[2]> set long tao OK 127.0.0.1:6379[2]> get long "tao"
NX:如果一个键不存在,才创建并设定值,否则不允许设定
XX:如果一个键存在则设置建的值,如果不存在则不创建并不设置其值
例如:
127.0.0.1:6379[2]> get long "tao" 127.0.0.1:6379[2]> set long taolong nx (nil) //返回提示一个没能执行的操作 127.0.0.1:6379[2]> set long taolong xx OK 127.0.0.1:6379[2]> get long "taolong"
定义一个键并设置过期时间为10秒
127.0.0.1:6379[2]> set foo longtao EX 10 OK 127.0.0.1:6379[2]> get foo "longtao" 127.0.0.1:6379[2]> get foo (nil) //10秒后值失效
获取键中的值:
127.0.0.1:6379[2]> get long "taolong"
追加键中的值(在原有键中追加值的内容):
127.0.0.1:6379[2]> get long "taolong" 127.0.0.1:6379[2]> append long 123456 (integer) 13 127.0.0.1:6379[2]> get long "taolong123456"
获取指定键中的值的字符串的长度:
127.0.0.1:6379[2]> strlen long (integer) 13
定义整数值:
127.0.0.1:6379[2]> set int 0 OK 127.0.0.1:6379[2]> get int "0"
增加键中的整数值:+1 (注:incr命令只能对整数使用)
127.0.0.1:6379[2]> incr int (integer) 1 127.0.0.1:6379[2]> get int "1" 127.0.0.1:6379[2]> incr int (integer) 2 127.0.0.1:6379[2]> get int "2"
删除键:
127.0.0.1:6379[2]> get long "taolong123456" 127.0.0.1:6379[2]> del long (integer) 1 127.0.0.1:6379[2]> get long (nil)
info 查看统计信息
最后显示
# Keyspace db0:keys=1,expires=0,avg_ttl=0 //数据库零:有一个键,0个过期键值 db2:keys=2,expires=0,avg_ttl=0 //数据库二:有两个键,0个过期键值
查看所有键信息:
127.0.0.1:6379[2]> keys * 1) "foo" 2) "int"
列表的操作:
键指向一个列表,而列表可以理解为是一个字符串的容器,列表是有众多元素组成的集合,可以在键所指向的列表中附加一个值
LPUSH //在键所指向的列表前面插入一个值(左边加入)
RPUSH //在键所指向的列表后面附加一个值(右边加入)
LPOP //在键所指向的列表前面删除一个值(左边删除)
RPOP //在键所指向的列表后面删除一个值(右边删除)
LINDEX //根据索引获取值,指明索引位置进行获取对应的值
LSET //用于修改指定索引的值为指定的值
创建一个新的列表
实际上创建一个新的列表使用LPUSH或RPUSH都可以 127.0.0.1:6379[2]> lpush lt long tao (integer) 2
获取列表中的值
(需要指定位置) 127.0.0.1:6379[2]> lindex lt 0 "tao" 127.0.0.1:6379[2]> lindex lt 1 "long" 127.0.0.1:6379[2]>
在原有的列表中的左侧或右侧加入一个值
127.0.0.1:6379[2]> lpush lt left (integer) 3 127.0.0.1:6379[2]> lindex lt 0 "left" 127.0.0.1:6379[2]> rpush lt right (integer) 4 127.0.0.1:6379[2]> lindex lt 3 "right"
修改一个已有的列表中的值:
127.0.0.1:6379[2]> lset lt 0 ABC OK 127.0.0.1:6379[2]> lindex lt 0 "ABC"
查看列表中的值的数量
127.0.0.1:6379[2]> llen lt (integer) 4
在已有的列表中左侧删除一个值
127.0.0.1:6379[2]> lpop lt "ABC" 127.0.0.1:6379[2]> lpop lt "tao"
在已有的列表中右侧删除一个值
127.0.0.1:6379[2]> rpop lt "right"
其他使用方法查询
127.0.0.1:6379[2]> help @list
认证实现方法:
在配置文件大概在900行左右
vim /etc/redis.conf # requirepass foobared//去掉#注释启用此项,并指定密码为longtao requirepass longtao
设定密码后如何登录
[root@CentOS7 ~]# redis-cli 127.0.0.1:6379> select 2 (error) NOAUTH Authentication required. 127.0.0.1:6379> auth longtao OK 127.0.0.1:6379> select 1 OK
清空数据库
清空所有的库和所有的值 flushall
127.0.0.1:6379[2]> keys * 1) "lt" 2) "ll" 3) "foo" 127.0.0.1:6379[2]> flushall OK 127.0.0.1:6379[2]> keys * (empty array)
清空当前的库和所有的值 flushdb
127.0.0.1:6379> keys * 1) "name" 127.0.0.1:6379> flushdb OK 127.0.0.1:6379> keys * (empty array)
客户端使用说明:
# redis-cli -h
选项:
-h <hostname> 指定主机IP -p <port>指定端口socket文件进行通信 -s <socket> 指定socket文件,如果客户端和服务端都在同一台主机,可以指定socket文件进行通信 -a <password> 指定认证密码 -r <repeat> 连接成功后指定运行的命令N次 -i <interval> 连接成功后每个命令执行完成等待时间,使用-i选项指定 -n <db>
示例:
[root@xuegod63 ~]# redis-cli -h 192.168.1.63//连接redis,默认不启用密码认证 [root@xuegod63 ~]# redis-cli -h 192.168.1.63 -a longtao //连接redis,默认启用密码认证,密码是longtao [root@xuegod63 ~]# redis-cli -h 192.168.1.63 -n 3 //连接redis,进入指定4号数据库,数据库编号从0开始 或: [root@xuegod63 ~]# redis-cli //使用redis-cli直接连接,默认连接是127.0.0.1 IP 127.0.0.1:6379> exit //退出连接
其他更多使用方法,参见:https://www.runoob.com/redis/redis-tutorial.html