redis基本操作

 每日运维   2018-06-19 18:43   2975 人阅读  0 条评论

Redis的一些基本操作命令

 

一、Redis登录

redis-cli

 

参数:

-h <hostname>            #指定主机IP

-p <port>                    #指定端口

-s <socket>                 #指定socket文件,如果客户端和服务端都在同一台主机,可以指定socket文件进行通信

-a <password>            #指定认证密码

-r <repeat>                 #连接成功后指定运行的命令N次

-i <interval>                 #连接成功后每个命令执行完成等待时间,使用-i选项指定

-n <db>

 

例1:

##直接使用redis-cli连接,默认连接127.0.0.1,端口6379,无密码

[root@test01centos7 ~]# redis-cli

127.0.0.1:6379>

 

例2:

##指定IP、端口连接

[root@test01centos7 ~]# redis-cli -h 127.0.0.1 -p 6379

127.0.0.1:6379>

 

二、Redis设置密码

vim /etc/redis/redis.conf

 

requirepass nongkaige

 

##重启Redis生效

 

三、Redis使用密码登录

1、直接指定密码登录

[root@test01centos7 ~]# redis-cli -a nongkaige

127.0.0.1:6379> CONFIG GET requirepass

1) "requirepass"

2) "nongkaige"

127.0.0.1:6379>

 

2、登录之后再认证密码

[root@test01centos7 ~]# redis-cli

127.0.0.1:6379> AUTH nongkaige

OK

127.0.0.1:6379>

 

##以上说明一下,CONFIG GET requirepass是获取密码的意思。AUTH是验证密码。还有一点值得说明的是,如果redis设置了密码,也可以不输入密码直接登录,但是登录之后什么命令都无法操作,如下:

 

[root@test01centos7 ~]# redis-cli

127.0.0.1:6379> CONFIG GET requirepass

(error) NOAUTH Authentication required.

127.0.0.1:6379> info

NOAUTH Authentication required.

127.0.0.1:6379>

 

四、Redis获取帮助

##登录redis之后可以使用help获取使用帮助,redis的help非常的强大,因为redis支持众多的数据结构,每一种数据结构当中都支持N种操作,因此需要使用help xxx的方式来获取某一种数据结构所支持的操作,如下,输入help就会提示你怎么操作查看帮助命令

 

127.0.0.1:6379> help

redis-cli 4.0.8

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

 

例1:

##获取字符串组支持哪些操作

127.0.0.1:6379> help @string

redis基本操作  第1张

 

例2:

##获取单个命令的使用方法

127.0.0.1:6379> help APPEND

 

  APPEND key value                                  #命令使用方法

  summary: Append a value to a key         #命令解释

  since: 2.0.0                                            #说明此命令在哪个版本中引入的

  group: string                                         #该命令属于哪个组

 

例3:

##help Tab键,每敲一次轮换一个,带有@则为一个组,不带@则为命令使用方法

127.0.0.1:6379> help @generic

127.0.0.1:6379> help @list

127.0.0.1:6379> help CLIENT LIST

 

五、切换库(名称空间)

##默认登录redis就是在0号库,一共16个库,就是0-15号,如果要从0号库切换到1号库,使用select,注意啊,这和MySQL不一样,MySQL这个参数是查询的意思,在redis中是切换库,相当于MySQL的use参数

 

127.0.0.1:6379> SELECT 1

OK

127.0.0.1:6379[1]>

 

六、键的遵循

1)可以使用ASCII字符

2)键的长度不要过长,键的长度越长则消耗的空间越多

3)在同一个库中(名称空间),键的名称不得重复,如果复制键的名称,实际上是修改键中的值

4)在不同的库中(名称空间),键的同一个名称可以重复

5)键可以实现自动过期

 

七、set的操作

127.0.0.1:6379[1]> help set

 

  SET key value [EX seconds] [PX milliseconds] [NX|XX]

  summary: Set the string value of a key

  since: 1.0.0

  group: string

 

##EX:过期时间,单位秒

##NX:如果一个键不存在,才创建并设定值,否则不设定

##XX:如果一个键存在,则设置键的值,如果不存在,则不创建并不设置值

 

例1:

##设置一个nong的键,它的值为kaige

127.0.0.1:6379[1]> set nong kaige

OK

 

例2:

##上边已经设置了一个nong键,下面我们来试试使用NX,下边命令表示,如果没有这个nong键,则设置这个nong键,它的值为lihua,结果肯定是不允许创建的(nil),因为这个nong键已经存在了

127.0.0.1:6379[1]> set nong lihua NX

(nil)

127.0.0.1:6379[1]> get nong

"kaige"

 

例3:

##定义一个键,并设置其过期时间为60秒

127.0.0.1:6379[1]> set sda mnt EX 60

OK

127.0.0.1:6379[1]> get sda

"mnt"

 

##从上面可以看出,现在还是可以获取到sda键的值,等60秒过后我们再查看一次,已经无法获取到了,因为过期了

127.0.0.1:6379[1]> get sda

(nil)

 

例4:

##上边我们设置了一个nong键的值为kaige,下面我们使用XX,下边命令表示,如果nong这个键存在,则设置这个nong键的值为lihua,如果不存在,不创建也不设值

127.0.0.1:6379[1]> set nong lihua XX

OK

127.0.0.1:6379[1]> get nong

"lihua"

 

例5:

##跟例4一样,也是使用XX,只是这次我们设置一个不存在的键,如果不存在这个键,不创建也不设值

127.0.0.1:6379[1]> set hehe ziyi XX

(nil)

 

八、get的操作

##其实上边我们已经操作了很多次了,get就是获取一个键的值

127.0.0.1:6379[1]> get nong

"lihua"

 

九、添加键中的值(在原有的键中附加值,是附加,不是修改)

127.0.0.1:6379[1]> get nong

"lihua"

127.0.0.1:6379[1]> append nong hehe

(integer) 9

127.0.0.1:6379[1]> get nong

"lihuahehe"

 

十、获取指定键中值的字符串长度

127.0.0.1:6379[1]> strlen nong

(integer) 9

 

十一、定义整数值

127.0.0.1:6379[1]> set fda 1

OK

 

十二、增加键中的整数值

127.0.0.1:6379[1]> incr fda

(integer) 2

127.0.0.1:6379[1]> incr fda

(integer) 3

127.0.0.1:6379[1]> incr fda

(integer) 4

127.0.0.1:6379[1]> get fda

"4"

 

注意:incr命令只能对整数使用

 

十三、删除键

127.0.0.1:6379[1]> del fda

(integer) 1

127.0.0.1:6379[1]> get fda

(nil)

 

十四、列表的操作

键指向一个列表,而列表可以理解为是一个字符串的容器,列表是有众多元素组成的集合,可以在键所指向的列表中附加一个值

 

LPUSH            //在键所指向的列表前面插入一个值(左边加入)

RPUSH           //在键所指向的列表后面附加一个值(右边加入)

LPOP              //在键所指向的列表前面弹出一个值(左边弹出,即删除)

RPOP             //在键所指向的列表后面弹出一个值(右边弹出,即删除)

LINDEX          //根据索引获取值,指明索引位置进行获取对应的值

LSET                     //用于修改指定索引的值为指定的值

 

例1:

##一个新的列表,该列表名称为cc,值为nkg,创建一个新的列表使用LPUSH或RPUSH都可以

127.0.0.1:6379[1]> lpush cc nkg

(integer) 1

 

例2:

##获取列表中的值,需要指明索引位置进行获取对应的值,下边命令为获取列表cc中第一个索引的值,0表示第一个索引,因为从0开始计数

127.0.0.1:6379[1]> lindex cc 0

"nkg"

 

例3:

##在原有的列表的左侧加入一个值

127.0.0.1:6379[1]> lpush cc hlh

(integer) 2

127.0.0.1:6379[1]> lindex cc 0

"hlh"

127.0.0.1:6379[1]> lindex cc 1

"nkg"

 

这里说明一下,从上边可以看出,列表的值原本是nkg,我们从nkg的左边添加了一个hlh的值,那现在的值应该是hlh nkg,所以,上边我们获取第一个索引的值就是hlh,第二个就是nkg

 

例4:

##在原有的列表中的右侧加入一个值

127.0.0.1:6379[1]> rpush cc nzy

(integer) 3

127.0.0.1:6379[1]> lindex cc 0

"hlh"

127.0.0.1:6379[1]> lindex cc 1

"nkg"

127.0.0.1:6379[1]> lindex cc 2

"nzy"

 

这里又来说一下了,接着上边的我们知道,没有加入值之前,这个列表的值应该是hlh nkg,那我们在右侧加入一个nzy的值,那现在的值应该为hlh nkg nzy,所以,上边我们获取第一个索引的值就是hlh,第二个就是nkg,第三个为nzy

 

例5:

##修改一个已有列表中的值

127.0.0.1:6379[1]> lset cc 0 pipi

OK

127.0.0.1:6379[1]> lindex cc 0

"pipi"

 

例6:

##查看列表中值的数量

127.0.0.1:6379[1]> llen cc

(integer) 3

 

例7:

##在已有列表中的右侧弹出(删除)一个值

127.0.0.1:6379[1]> rpop cc

"nzy"

 

例8:

##在已有列表中的左侧弹出(删除)一个值

127.0.0.1:6379[1]> lpop cc

"pipi"

127.0.0.1:6379[1]> lpop cc

"nkg"

127.0.0.1:6379[1]> lpop cc

(nil)

 

十五、清空数据库

FLUSHDB:删除当前选择的数据库所有key

FLUSHALL:清空所有库

 

127.0.0.1:6379[1]> flushdb

OK

127.0.0.1:6379[1]> flushall

OK


本文地址:https://linux365.cn/33.html
版权声明:本文为原创文章,版权归 每日运维 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?