redis基本操作

1  redis配置文件:

[root@xuegod63 ~]# vim /etc/redis.conf

       daemonize no            //表示redis并不会运行成为一个守护进程,如果需要运行成为一个守护进程,则把no,改为yes即可,如果使用服务脚本启动,即使daemonize为no,也会运行为一个守护进程

       port 6379              //监听端口:6379/tcp

       tcp-backlog 511           //指定tcp-backlog的长度

              说明:任何的tcp服务都有可能使用到tcp-backlog功能,backlog是一个等待队列,比如:redis的并发很高时,redis有可能运行不过来时,就连接本地缓存等队列都满了以后,就会使用额外的存储地方,把新来的请求暂存下来,而这个位置则称为backlog

       bind 127.0.0.1              //监听的地址,默认监听在127.0.0.1地址上,可以指定为0.0.0.0地址,或某个特定的地址,或可以指定多个,使用空格分隔即可

       # unixsocket /tmp/redis.sock    //指定使用sock文件通信及sock文件位置,如果服务端和客户都在同一台主机上,建议打开此项,基于sock方式通信可以直接在内存中交换,数据不用再经过TCP/TP协议栈进行封装、拆封

       # unixsocketperm 700 //定义sock文件的访问权限

       timeout 0             //表示当客户端连接成功后,空闲(非活跃、或没有任何数据交互)多长时间则连接超时,0表示不启用此功能

       tcp-keepalive 0            //定义是否启用tcp-keepalive功能

       loglevel notice            //定义日志级别

       logfile /var/log/redis/redis.log        //定义日志文件

       databases 16 //定义redis默认有多少个databases,但是在分布式中,只能使用一个

 

       #### SNAPSHOTTING  ####           //定义RDB的持久化相关

       save <seconds> <changes>       //使用save指令,并指定每隔多少秒,如果发生多大变化,进行存储

       示例:

       save 900 1            //表示在900秒(15分钟内),如果至少有1个键发生改变,则做一次快照(持久化)

       save 300 10           //表示在300秒(5分钟内),如果至少有10个键发生改变,则做一次快照(持久化)

       save 60 10000       //表示在60秒(1分钟内),如果至少有10000个键发生改变,则做一次快照(持久化)

       save ""          //如果redis中的数据不需做持久化,只是作为缓存,则可以使用此方式关闭持久化功能

 

       ######## REPLICATION #######    //配置主从相关

       # slaveof <masterip> <masterport>        //此项不启用时,则为主,如果启动则为从,但是需要指明主服务器的IP,端口

       # masterauth <master-password>    //如果主服务设置了密码认证,那么从的则需要启用此项并指明主的认证密码

       slave-read-only yes     //定义从服务对主服务是否为只读(仅复制)

 

       ##### LIMITS #####                 //定义与连接和资源限制相关的配置

       # maxclients 10000             //定义最大连接限制(并发数)

       # maxmemory <bytes>             //定义使用主机上的最大内存,默认此项关闭,表示最大将使用主机上的最大可用内存

 

       ###### APPEND ONLY MODE #######         //定义AOF的持久化功能相关配置,一旦有某一个键发生变化,将修改键的命令附加到命令列表的文件中,类似于MySQL二进制日志

       appendonly no           //定义是否开启此功能,no表示关闭,yes表示开启

       说明:RDB和AOF两种持久功能可以同时启用,两者不影响

2、登录redis:

[root@xuegod63 ~]# 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   //使用redis-cli直接连接,默认连接是127.0.0.1 IP

       127.0.0.1:6379> exit     //退出连接

3、 redis获取帮助:

127.0.0.1:6379> help           //获取使用帮助

说明:redis的help命令非常强大,因为redis支持众多的数据结构,每一种数据结构当中都支持N种操作,因此需要使用 help @group方式来获取某一种数据结构所支持的操作

 

例:获取字符串组所支持有那些操作

127.0.0.1:6379> help @string

 

127.0.0.1:6379> help APPEND    //获取单个命令的使用方法

APPEND key value             //命令方法

summary: Append a value to a key

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

group: string        //该命令所属哪一个组

 

查看都有哪些组:

127.0.0.1:6379> help TAB键,每敲一次轮换一个,带有@则为一个组,不带@则为命令使用

 

切换库(名称空间):

       127.0.0.1:6379> select 1              //表示切换到1号库中,默认为0号库,共16个,0-15

       OK

       127.0.0.1:6379[1]>

4、键的遵循:

可以使用ASCII字符

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

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

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

键可以实现自动过期

5、Strings的操作:

127.0.0.1:6379> help set

SET key value [EX seconds] [PX milliseconds] [NX|XX]  //命令 键 值 [EX 过期时间,单位秒]

summary: Set the string value of a key

since: 1.0.0

group: string

 

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

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

 

例:

127.0.0.1:6379> set cjk lzll

OK

 

127.0.0.1:6379> set cjk aaa NX

(nil)        //反回提示一个没能执行的操作

 

127.0.0.1:6379> get cjk

"lzll"

 

127.0.0.1:6379> set foo abc XX

(nil)

 

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

127.0.0.1:6379> set fda abc EX 60

OK

 

获取键中的值:

127.0.0.1:6379> help get

GET key

summary: Get the value of a key

since: 1.0.0

group: string

 

例:

127.0.0.1:6379> get cjk

"lzll"

 

添加键中的值(在原有键中附加值的内容):

127.0.0.1:6379> append cjk fda

(integer) 7

127.0.0.1:6379> get cjk

"lzllfda"

 

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

127.0.0.1:6379> strlen cjk

(integer) 7

 

定义整数值:

127.0.0.1:6379> set fda 0            //整数值为0

OK

 

增加键中的整数值:

127.0.0.1:6379> incr fda

(integer) 1

127.0.0.1:6379> incr fda

(integer) 2

127.0.0.1:6379> incr fda

(integer) 3

127.0.0.1:6379> incr fda

(integer) 4

127.0.0.1:6379> get fda

"4"

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

 

删除键:

127.0.0.1:6379> del fda

(integer) 1

127.0.0.1:6379> get fda

(nil)

6、列表的操作:

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

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

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

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

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

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

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

 

例:

       127.0.0.1:6379> help @list

       LSET key index value

       summary: Set the value of an element in a list by its index

       since: 1.0.0

                    

       指定一个新的列表,在帮助中并没产明哪个命令用于创建一个新的列表,实际上创建一个新的列表使用LPUSH或RPUSH都可以

 

例:

       127.0.0.1:6379> lpush ll cjk         //ll为列表名称,cjk为值(索引)

       (integer) 1

 

获取列表中的值:需要指明索引位置进行获取对应的值

       127.0.0.1:6379> lindex ll 0          //第一个索引则为0

       "cjk"

 

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

       127.0.0.1:6379> lpush ll fda

       (integer) 2

 

       127.0.0.1:6379> lindex ll 0

       "fda"

 

       127.0.0.1:6379> lindex ll 1

       "cjk"

 

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

       127.0.0.1:6379> rpush ll lzll

       (integer) 3

 

       127.0.0.1:6379> lindex ll 2

       "lzll"

 

       127.0.0.1:6379> lindex ll 1

       "cjk"

 

       127.0.0.1:6379> lindex ll 0

       "fda"

 

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

       127.0.0.1:6379> lset ll 0 abc

       OK

 

       127.0.0.1:6379> lindex ll 0

       "abc"

 

查看列表中的值的数量

       127.0.0.1:6379> llen ll

       (integer) 3

 

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

       127.0.0.1:6379> rpop ll

       "lzll"

 

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

       127.0.0.1:6379> lpop ll

       "abc"

       127.0.0.1:6379> lpop ll

       "cjk"

       127.0.0.1:6379> lpop ll

       (nil)

7、认证实现方法:

       (1) redis.conf

       # requirepass foobared             //启用此项,并指定密码即可

       requirepass PASSWORD

 

例:

       # vim /etc/redis.conf

       requirepass kill

 

       (1) redis.conf

       # requirepass foobared             //启用此项,并指定密码即可

       requirepass PASSWORD

 

例:

       # vim /etc/redis.conf

       requirepass kill

 

       # redis-cli

       127.0.0.1:6379> select 1

       (error) NOAUTH Authentication required.

 

       127.0.0.1:6379> auth kill

       OK

 

       127.0.0.1:6379> select 1

       OK

       127.0.0.1:6379[1]>

8、清空数据库:

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

       FLUSHALL:清空所有库

 

       127.0.0.1:6379> flushdb

       OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值