本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法)

目录:

Server(服务器)
BGREWRITEAOF BGSAVE SAVE LASTSAVE DBSIZE SLAVEOF
FLUSHALL FLUSHDB SLOWLOG INFO CONFIG GET CONFIG SET


Server(服务器)

1、BGREWRITEAOF

Redis Bgrewriteaof 命令用于异步执行一个 AOF(AppendOnly File) 文件重写操作。重写会创建一个当前 AOF 文件的体积优化版本。

即使 Bgrewriteaof 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 Bgrewriteaof 成功之前不会被修改。

注意:从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BGREWRITEAOF 仅仅用于手动触发重写操作。

语法:

redis 127.0.0.1:6379> BGREWRITEAOF

返回值: 反馈信息

可用版本:>= 1.0.0

时间复杂度:O(N), N 为要追加到 AOF 文件中的数据数量。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> set('job','programmer');
var_dump($redis -> bgrewriteaof()); // true ,会在 config['dir'] 所定义的目录下生产一个 dump.rdb 文件

2、BGSAVE

Redis Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘

BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。

语法:

redis 127.0.0.1:6379> BGSAVE

返回值: 反馈信息

可用版本:>= 1.0.0

时间复杂度:O(N), N 为要保存到数据库中的 key 的数量。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> set('job','programmer');
var_dump($redis -> bgsave()); // true , 子进程负责保存数据到磁盘

3、SAVE

Redis Save 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。

语法:

redis 127.0.0.1:6379> SAVE

返回值: 保存成功时返回 OK 。

可用版本:>= 1.0.0

时间复杂度:O(N), N 为要保存到数据库中的 key 的数量。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> set('job','programmer');
var_dump($redis -> save()); // true , 同步当前数据库的数据到磁盘

4、LASTSAVE

Redis Lastsave 命令返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。

语法:

redis 127.0.0.1:6379> LASTSAVE

返回值: 字符串,文本行的集合。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> set('job','programmer');
var_dump($redis -> lastSave()); //

5、DBSIZE

dis Dbsize 命令用于返回当前数据库的 key 的数量。

语法:

redis 127.0.0.1:6379> DBSIZE

返回值:当前数据库的 key 的数量。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> set('job','programmer');
$redis -> set('favorite_fruit','cherry');
var_dump($redis -> dbSize()); //

6、SLAVEOF

Redis Slaveof 命令可以将当前服务器转变为指定服务器的从属服务器(slave server)。

(1)如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步

(2)对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。

(3)利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行

语法:

redis 127.0.0.1:6379> SLAVEOF host port

返回值:总是返回 OK 。

可用版本:>= 1.0.0

时间复杂度:(1)SLAVEOF host port ,O(N), N 为要同步的数据数量。

      (2)SLAVEOF NO ONE , O(1) 。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> set('job','programmer');
$redis -> set('favorite_fruit','cherry');
var_dump($redis -> slaveof('127.0.0.1','6379')); // true , 当前服务器从属于 127.0.0.1 这台服务器
var_dump($redis -> slaveof('NO ONE')); // true ,当前服务器关闭复制功能,从从服务器变回主服务器,且数据不会丢失

7、FLUSHALL

Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。

语法:

redis 127.0.0.1:6379> FLUSHALL

返回值:总是返回 OK 。

可用版本:>= 1.0.0

时间复杂度:尚未明确

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); // 清空整个 redis 服务器的数据

8、FLUSHDB

Redis Flushdb 命令用于清空当前数据库中的所有 key。

语法:

redis 127.0.0.1:6379> FLUSHDB

返回值:总是返回 OK 。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushDB(); // 清空当前数据库中所有的 key

9、SLOWLOG

Redis Showlog 是 Redis 用来记录查询执行时间的日志系统

查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。

另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。

语法:

redis 127.0.0.1:6379> SLOWLOG subcommand [argument]

返回值:取决于不同命令,返回不同的值。

可用版本:>= 2.2.12

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
//$redis -> slowlog('reset'); // 清空满日子 var_dump($redis -> config('get','slowlog-log-slower-than')); // 1000 , 这是 redis 默认的时间,查询时间大于 1s 的会被慢日志记录下来
var_dump($redis -> config('get','slowlog-max-len')); // 128 , 能保存128 条记录,当记录数量大于 128 时,最旧的一条记录会被删除,最新的一条记录会被加入到 slowlog
var_dump($redis -> config('set','slowlog-log-slower-than',100)); // 修改时间
var_dump($redis -> config('get','*')); // 查询所有的配置项
var_dump($redis -> slowlog('len')); // int 1 ,查看当前慢日志的数量
var_dump($redis -> slowlog('get')); // 查看所有的慢日志
var_dump($redis -> slowlog('get',1)); // 查看指定数量的慢日志
//array (size=1)
// 0 =>
// array (size=4)
// 0 => int 765 // slowlog 唯一编号ID,日志的唯一 id 只有在 Redis 服务器重启的时候才会重置,这样可以避免对日志的重复处理(比如你可能会想在每次发现新的慢查询时发邮件通知你)。
// 1 => int 1494840849 // 查询的时间戳
// 2 => int 1000 // 查询耗时(微秒),如:本条命令查询耗时 1000 微秒
// 3 =>
// array (size=3)
// 0 => string 'CONFIG' (length=6) // 查询命令,完整命令为 SLOWLOG GET,slowlog最多保存前面的31个key和128字符
// 1 => string 'get' (length=3)
// 2 => string '*' (length=1)

10、INFO

Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值

语法:

redis 127.0.0.1:6379> INFO [section]

返回值:字符串,文本行的集合。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379); var_dump($redis -> info());
//array (size=83)
// 'redis_version' => string '3.0.503' (length=7)
// 'redis_git_sha1' => int 0
// 'redis_git_dirty' => int 0
// 'redis_build_id' => string 'd14575c6134f877' (length=15)
// 'redis_mode' => string 'standalone' (length=10)
// 'os' => string 'Windows ' (length=9)
// 'arch_bits' => int 64
// 'multiplexing_api' => string 'WinSock_IOCP' (length=12)
// 'process_id' => int 13628
// 'run_id' => string '7ddea1b46590dfaa48665b4ec199bf8c4ecb71c3' (length=40)
// 'tcp_port' => int 6379
// 'uptime_in_seconds' => int 612896
// 'uptime_in_days' => int 7
// 'hz' => int 10
// 'lru_clock' => int 1669527
// 'config_file' => int 0
// 'connected_clients' => int 1
// 'client_longest_output_list' => int 0
// 'client_biggest_input_buf' => int 0
// 'blocked_clients' => int 0
// 'used_memory' => int 692408
// 'used_memory_human' => string '676.18K' (length=7)
// 'used_memory_rss' => int 633888
// 'used_memory_peak' => int 13492080
// 'used_memory_peak_human' => string '12.87M' (length=6)
// 'used_memory_lua' => int 36864
// 'mem_fragmentation_ratio' => string '0.92' (length=4)
// 'mem_allocator' => string 'jemalloc-3.6.0' (length=14)
// 'loading' => int 0
// 'rdb_changes_since_last_save' => int 15
// 'rdb_bgsave_in_progress' => int 0
// 'rdb_last_save_time' => int 1494838761
// 'rdb_last_bgsave_status' => string 'ok' (length=2)
// 'rdb_last_bgsave_time_sec' => int 0
// 'rdb_current_bgsave_time_sec' => string '-1' (length=2)
// 'aof_enabled' => int 0
// 'aof_rewrite_in_progress' => int 0
// 'aof_rewrite_scheduled' => int 0
// 'aof_last_rewrite_time_sec' => int 0
// 'aof_current_rewrite_time_sec' => string '-1' (length=2)
// 'aof_last_bgrewrite_status' => string 'ok' (length=2)
// 'aof_last_write_status' => string 'ok' (length=2)
// 'total_connections_received' => int 998
// 'total_commands_processed' => int 8119
// 'instantaneous_ops_per_sec' => int 0
// 'total_net_input_bytes' => int 361449
// 'total_net_output_bytes' => int 191765
// 'instantaneous_input_kbps' => string '0.00' (length=4)
// 'instantaneous_output_kbps' => string '0.00' (length=4)
// 'rejected_connections' => int 0
// 'sync_full' => int 0
// 'sync_partial_ok' => int 0
// 'sync_partial_err' => int 0
// 'expired_keys' => int 22
// 'evicted_keys' => int 0
// 'keyspace_hits' => int 4220
// 'keyspace_misses' => int 135
// 'pubsub_channels' => int 0
// 'pubsub_patterns' => int 0
// 'latest_fork_usec' => int 29003
// 'migrate_cached_sockets' => int 0
// 'role' => string 'slave' (length=5)
// 'master_host' => string 'NO ONE' (length=6)
// 'master_port' => int 6379
// 'master_link_status' => string 'down' (length=4)
// 'master_last_io_seconds_ago' => string '-1' (length=2)
// 'master_sync_in_progress' => int 0
// 'slave_repl_offset' => int 1
// 'master_link_down_since_seconds' => string 'jd' (length=2)
// 'slave_priority' => int 100
// 'slave_read_only' => int 1
// 'connected_slaves' => int 0
// 'master_repl_offset' => int 0
// 'repl_backlog_active' => int 0
// 'repl_backlog_size' => int 1048576
// 'repl_backlog_first_byte_offset' => int 0
// 'repl_backlog_histlen' => int 0
// 'used_cpu_sys' => string '3.56' (length=4)
// 'used_cpu_user' => string '0.87' (length=4)
// 'used_cpu_sys_children' => string '0.00' (length=4)
// 'used_cpu_user_children' => string '0.00' (length=4)
// 'cluster_enabled' => int 0
// 'db0' => string 'keys=2,expires=0,avg_ttl=0' (length=26)

11、CONFIG GET

Redis Config Get 命令用于获取 redis 服务的配置参数。

在 Redis 2.4 版本中, 有部分参数没有办法用 CONFIG GET 访问,但是在最新的 Redis 2.6 版本中,所有配置参数都已经可以用 CONFIG GET 访问了。

语法:

redis 127.0.0.1:6379> CONFIG GET parameter

返回值:给定配置参数的值。

可用版本:>= 2.0.0

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379); var_dump($redis -> config('get','requirepass')); // string '' , 获取指定的配置项
var_dump($redis -> config('get','*')); // 获取所有的配置项
//array (size=65)
// 'dbfilename' => string 'dump.rdb' (length=8)
// 'requirepass' => string '' (length=0)
// 'masterauth' => string '' (length=0)
// 'unixsocket' => string '' (length=0)
// 'logfile' => string '' (length=0)
// 'pidfile' => string '/var/run/redis.pid' (length=18)
// 'maxmemory' => string '0' (length=1)
// 'maxmemory-samples' => string '5' (length=1)
// 'timeout' => string '0' (length=1)
// 'tcp-keepalive' => string '0' (length=1)
// 'auto-aof-rewrite-percentage' => string '100' (length=3)
// 'auto-aof-rewrite-min-size' => string '67108864' (length=8)
// 'hash-max-ziplist-entries' => string '512' (length=3)
// 'hash-max-ziplist-value' => string '64' (length=2)
// 'list-max-ziplist-entries' => string '512' (length=3)
// 'list-max-ziplist-value' => string '64' (length=2)
// 'set-max-intset-entries' => string '512' (length=3)
// 'zset-max-ziplist-entries' => string '128' (length=3)
// 'zset-max-ziplist-value' => string '64' (length=2)
// 'hll-sparse-max-bytes' => string '3000' (length=4)
// 'lua-time-limit' => string '5000' (length=4)
// 'slowlog-log-slower-than' => string '100' (length=3)
// 'latency-monitor-threshold' => string '0' (length=1)
// 'slowlog-max-len' => string '128' (length=3)
// 'port' => string '6379' (length=4)
// 'tcp-backlog' => string '511' (length=3)
// 'databases' => string '16' (length=2)
// 'repl-ping-slave-period' => string '10' (length=2)
// 'repl-timeout' => string '60' (length=2)
// 'repl-backlog-size' => string '1048576' (length=7)
// 'repl-backlog-ttl' => string '3600' (length=4)
// 'maxclients' => string '10000' (length=5)
// 'watchdog-period' => string '0' (length=1)
// 'slave-priority' => string '100' (length=3)
// 'min-slaves-to-write' => string '0' (length=1)
// 'min-slaves-max-lag' => string '10' (length=2)
// 'hz' => string '10' (length=2)
// 'cluster-node-timeout' => string '15000' (length=5)
// 'cluster-migration-barrier' => string '1' (length=1)
// 'cluster-slave-validity-factor' => string '10' (length=2)
// 'repl-diskless-sync-delay' => string '5' (length=1)
// 'cluster-require-full-coverage' => string 'yes' (length=3)
// 'no-appendfsync-on-rewrite' => string 'no' (length=2)
// 'slave-serve-stale-data' => string 'yes' (length=3)
// 'slave-read-only' => string 'yes' (length=3)
// 'stop-writes-on-bgsave-error' => string 'yes' (length=3)
// 'daemonize' => string 'no' (length=2)
// 'rdbcompression' => string 'yes' (length=3)
// 'rdbchecksum' => string 'yes' (length=3)
// 'activerehashing' => string 'yes' (length=3)
// 'repl-disable-tcp-nodelay' => string 'no' (length=2)
// 'repl-diskless-sync' => string 'no' (length=2)
// 'aof-rewrite-incremental-fsync' => string 'yes' (length=3)
// 'aof-load-truncated' => string 'yes' (length=3)
// 'appendonly' => string 'no' (length=2)
// 'dir' => string 'D:\redis-3.0.503' (length=16)
// 'maxmemory-policy' => string 'noeviction' (length=10)
// 'appendfsync' => string 'everysec' (length=8)
// 'save' => string 'jd 3600 jd 300 jd 60' (length=20)
// 'loglevel' => string 'notice' (length=6)
// 'client-output-buffer-limit' => string 'normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60' (length=67)
// 'unixsocketperm' => string '0' (length=1)
// 'slaveof' => string 'NO ONE 6379' (length=11)
// 'notify-keyspace-events' => string '' (length=0)
// 'bind' => string '' (length=0)

12、CONFIG SET

Redis Config Set 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。

你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。

语法:

redis 127.0.0.1:6379> CONFIG Set parameter value

返回值:当设置成功时返回 OK ,否则返回一个错误。

可用版本:>= 2.0.0

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379); var_dump($redis -> config('get','slowlog-log-slower-than')); //
var_dump($redis -> config('set','slowlog-log-slower-than',100)); // true
var_dump($redis -> config('get','slowlog-log-slower-than')); //

 如有转载,请注明出处:http://www.cnblogs.com/chrdai/p/6857518.html

redis 在 php 中的应用(Server[ 服务器] 篇)的更多相关文章

  1. redis 在 php 中的应用(List篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: List(列表) LPUSH LPUSHX RPUSH R ...

  2. redis 在 php 中的应用(Set篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) Redis的 Set 是 string 类型的无序集合.集合成员是 ...

  3. redis 在 php 中的应用(Sorted-set篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) Redis 有序集合和集合一样也是string类型元素的集合,且不 ...

  4. redis 在 php 中的应用(Hash篇)

    本文为我阅读了 redis参考手册 之后结合 博友的博客 编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) Redis hash 是一个string类型的f ...

  5. redis 在 php 中的应用(string篇)

    本文为我阅读了 redis参考手册 之后结合 博友的博客 编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: string(字符串) SET SETN ...

  6. redis 在 php 中的应用(key篇)

    本文为我阅读了 redis参考手册 之后结合 博友的博客 编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: KEY(键) DEL           ...

  7. redis 在 php 中的应用

    一.redis 在 php 中的应用(Key篇) 二.redis 在 php 中的应用(String篇) 三.redis 在 php 中的应用(Hash篇) 四.redis 在 php 中的应用(Li ...

  8. Redis 在新浪微博中的应用

    Redis 在新浪微博中的应用 Redis简介 1. 支持5种数据结构 支持strings, hashes, lists, sets, sorted setsstring是很好的存储方式,用来做计数存 ...

  9. Redis在PHP中的基本使用案例

    下载http://www.oschina.net/p/redis 解压后里面有:lib 源文件 .examples 例子.test测试 将lib目录拷贝到你的项目中,就可以开始你的predis操作了. ...

随机推荐

  1. shell编程之helloworld

    /bin/sh与/bin/bash的区别sh:如果前面有语句报错,则报错语句后面的命令不执行bash:如果前面有语句报错,后面的命令也会执行sh跟bash的区别,实际上就是bash有没有开启posix ...

  2. [BZOJ3295] [Cqoi2011]动态逆序对(带修改主席树)

    题目描述 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序 ...

  3. 关于windows2008r2系统80端口被system进程占用的问题

    80端口被system占用的问题   今天启动tomcat的时候发现无法启动80端口被占用 通过netstat -ano查看,发现被pid=4的进程占用 检查进程发现是system进程pid=4给占用 ...

  4. 源码编译安装nginx1.4.7

    传统上基于进程或线程模型架构的web服务通过每进程或每线程处理并发连接请求,这势必会在网络和I/O操作时产生阻塞,其另一个必然结果则是对内存或CPU的利用率低下.生成一个新的进程/线程需要事先备好其运 ...

  5. 编译安装lamp环境

    httpd 2.4.9 + mysql-5.5.33 + php-5.4.29编译安装过程: 准备好以下安装包: mysql-5.5.33-linux2.6-x86_64.tar.gz apr-uti ...

  6. javascript this详解(转)

    在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便和意义确定的.JavaScrip ...

  7. LeetCode(2):Add Two Numbers 两数相加

    Medium! 题目描述: 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头 ...

  8. Adam优化算法

    Question? Adam 算法是什么,它为优化深度学习模型带来了哪些优势? Adam 算法的原理机制是怎么样的,它与相关的 AdaGrad 和 RMSProp 方法有什么区别. Adam 算法应该 ...

  9. jmeter常用组件

    测试计划(Test Plan) 是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 线程组(Thread Group) 代表一定数量的并发用户,它可以用来模拟并发用户发送请 ...

  10. 步步为营-59-svn简介

    说明:版本控制器Svn的使用,安装教程不再多说 VisualSVN-Server--项目经理 TortoiseSVN--右击的时候显示 VisualSVN-- visual studio中使用 1 搭 ...