Redis基础知识之————php-Redis 常用命令专题

Keys


  • del,delete - 删除键
  • dump - 返回存储在指定键值的序列化版本。
  • exists - 确定键是否存在
  • expire,setTimeout,pexpire - 设置键的生存时间(以秒为单位)
  • expireAt,pexpireAt - 将密钥的到期时间设置为UNIX时间戳
  • keys,getKeys - 查找与给定模式匹配的所有键
  • scan - 扫描键空间中的键(Redis> = 2.8.0)
  • migrate - 将密钥从Redis实例原子传输到另一个实例
  • move - 将键移动到另一个数据库
  • object - 检查Redis对象的内部
  • persist - 从密钥中删除过期
  • randomKey - 从键空间返回随机密钥
  • rename,renameKey - 重命名键
  • renameNx - 重命名键,仅当新键不存在时
  • type - 确定存储在键上的类型
  • sort - 对列表中的元素,集合或排序集进行排序
  • ttl,pttl - 获取时间为一个键住
  • restore - 使用提供的序列化值创建密钥,以前通过dump获取。

scan

描述:扫描键的键空间

返回:Array,boolean:如果没有更多的键,此函数将返回一个键的数组或FALSE

参考网址:http://stackoverflow.com/questions/19910527/how-to-use-hscan-command-in-redis

 

$it = NULL; /* Initialize our iterator to NULL */
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY); /* retry when we get no keys back */
while($arr_keys = $redis->scan($it)) {
    foreach($arr_keys as $str_key) {
        echo "Here is a key: $str_key\n";
    }
    echo "No more keys to scan!\n";
}

 

Strings


  • append - 将值附加到键
  • bitCount - 计算字符串中的设置位
  • bitOp - 在字符串之间执行按位操作
  • decr,decrBy - 递减键的值
  • get - 获取键的值
  • getBit - 返回在key处存储的字符串值中偏移处的位值
  • getRange - 获取存储在键上的字符串的子字符串
  • getSet - 设置键的字符串值并返回其旧值
  • incr,incrBy - 递增键的值
  • incrByFloat - 将键的浮点值增加给定的量
  • mGet,getMultiple - 获取所有给定键的值
  • mSet,mSetNX - 将多个键设置为多个值
  • set - 设置键的字符串值
  • setBit - 设置或清除存储在键的字符串值中偏移处的位
  • setEx,pSetEx - 设置键的值和过期时间
  • setNx - 设置键的值,仅当键不存在时
  • setRange - 在指定偏移处开始的键处覆盖字符串的一部分
  • strLen - 获取存储在键中的值的长度

pSetEx

描述:PSETEX使用以毫秒为单位的TTL

$ redis-> pSetEx('key',100,'value'); //设置键→值,0.1秒TTL。

setNx

描述:如果键在数据库中不存在,则将参数中的字符串值设置为键的值。

$redis->setNx('key', 'value'); /* return TRUE */
$redis->setNx('key', 'value'); /* return FALSE */

incr, incrBy

描述:将存储在键上的数字增加1。 如果第二个参数被填充,它将被用作增量的整数值。

$redis->incr('key1'); / * key1不存在,在增加前设置为0 * /
                       / *,现在的值为1 * /
$redis->incr('key1'); /* 2 */
$redis->incr('key1'); /* 3 */
$redis->incr('key1'); /* 4 */
$redis->incrBy('key1', 10); /* 14 */

incrByFloat

描述:使用浮点精度递增键

$redis->incrByFloat('key1', 1.5); /* key1 didn't exist, so it will now be 1.5 */
$redis->incrByFloat('key1', 1.5); /* 3 */
$redis->incrByFloat('key1', -1.5); /* 1.5 */
$redis->incrByFloat('key1', 2.5); /* 4 */

mGet, getMultiple

描述:获取所有指定键的值。 如果一个或多个键不存在,数组将在键的位置包含FALSE。

$redis->set('key1', 'value1');
$redis->set('key2', 'value2');
$redis->set('key3', 'value3');
$redis->mGet(array('key1', 'key2', 'key3')); /* array('value1', 'value2', 'value3');
$redis->mGet(array('key0', 'key1', 'key5')); /* array(`FALSE`, 'value1', `FALSE`);

getSet

描述:设置一个值并返回该键上的上一个条目。

$redis->set('x', '42');
$exValue = $redis->getSet('x', 'lol');  // return '42', replaces x by 'lol'
$newValue = $redis->get('x')'       // return 'lol'

move

描述:将键移动到其他数据库。

$redis->select(0);  // switch to DB 0
$redis->set('x', '42'); // write 42 to x
$redis->move('x', 1);   // move to DB 1
$redis->select(1);  // switch to DB 1
$redis->get('x');   // will return 42

rename, renameKey

描述:

$redis->set('x', '42');
$redis->rename('x', 'y');
$redis->get('y');   // → 42
$redis->get('x');   // → `FALSE

renameNx

描述:与重命名相同,但如果目标已存在,则不会替换密钥。 这与setNx的行为相同。

$redis->set('x', '42');
$redis->setTimeout('x', 3); // x will disappear in 3 seconds.
sleep(5);               // wait 5 seconds
$redis->get('x');       // will return `FALSE`, as 'x' has expired.

expireAt, pexpireAt 

这个适合设置从Unix时间戳。 钥匙的死亡日期,从纪元时间起的秒数。

描述:在项目上设置到期日期(时间戳)。 pexpireAt需要一个以毫秒为单位的时间戳。

$redis->set('x', '42');
$now = time(NULL); // current timestamp
$redis->expireAt('x', $now + 3);    // x will disappear in 3 seconds.
sleep(5);               // wait 5 seconds
$redis->get('x');       // will return `FALSE`, as 'x' has expired.

 

 

 

 

 

 

 

 

 

 

Description: Set the string value in argument as value of the key, with a time to live. PSETEX uses a TTL in milliseconds.

Parameters

Key TTL Value

Return value

Bool TRUE if the command is successful.

Examples
时间: 2024-10-08 05:58:02

Redis基础知识之————php-Redis 常用命令专题的相关文章

sql基础知识:日期的常用用法

日期操作 select sysdate,add_months(sysdate,12) from dual; -- + 1 year select sysdate,add_months(sysdate,1) from dual; -- + 1 month select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; -- + 1 week select sysdate,to_char(sysdate+1,'yyyy-mm-

Redis基础知识之—— 缓存应用场景

转载原文:http://www.cnblogs.com/jinshengzhi/articles/5225718.html 一.MySql+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现. Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销.各个Slab按需动态分配一个page的内存(和4Kpage的概念不同,这

Redis基础知识之————如何处理客户端连接

redis 连接建立         Redis Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作: 首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型. 然后为这个socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法 然后创建一个 readable 的文件事件用于监听这个客户端 socket 的数据发送 当客户端连

Redis基础知识 之——发布/订阅

一.说明:        订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅.订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的.这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑. 二.发布及订阅功能: 基于事件的系统中,Pub/Sub是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求

Redis基础知识之—— 5个必须了解的事情【★★★★★】

一.掌控储存在Redis中的所有键       数据库的主要功能是储存数据,但是对于开发者来说,因为应用程序需求或者数据使用方法的改变,忽略存储在数据库中的某些数据是非常正常的,在Redis中同样如此.你可能忽视期满某些键,也可能因为应用程序的某个模块弃用而忘掉这些数据.      无论哪种情况,Redis都存储了一些不再使用的数据,平白无故的占用了一些空间.Redis的弱结构数据模式让集中储存的内容很难被弄清,除非你为键使用一套非常成熟的命名法则.使用合适的命名方法会简化你的数据库管理,当你通

Redis基础知识之————使用技巧(持续更新中.....)

一.key 设计技巧 把表名转换为key前缀 如, tag: 第2段放置用于区分区key的字段--对应mysql中的主键的列名,如userid 第3段放置主键值,如2,3,4...., a , b ,c 第4段,写要存储的列名 Key 不能太长,比如1024字节,但antirez也不喜欢太短如"u:1000:pwd",要表达清楚意思才好.他私人建议用":"分隔域,用"."作为单词间的连接,如"comment:12345:reply.to

Redis基础知识之————空间换时间的查询案例

空间与时间 空间换时间是在数据库中经常出现的术语,简单说就是把查询需要的条件进行索引的存储,然后查询时为O(1)的时间复杂度来快速获取数据,从而达到了使用空间存储来换快速的时间响应!对于redis这个k/v存储系统来说,复杂的查询不是它所建议的,它的优势在于通过key快速定位数据,它定位数据的速度与数据多少没有直接关系,无论是1万还是1亿数据,它定位的时间复杂度都是O(1),而在实际使用中,可能不简单使用key定位数据就够了,可能还需要数据里的某个属性去定位数据,这种情况第一感觉不能用redis

Redis基础知识之——自定义封装单实例和普通类Redis

一.普通Redis实例化类: class MyRedis { private $redis; public function __construct($host = '121.41.88.209', $port = 63789) { $this->redis = new Redis(); $this->redis->connect($host, $port); } public function expire($key = null, $time = 0) { return $this-

Redis基础知识之—— hset 和hsetnx 的区别

命令参数:HSET key field valueHSETNX key field value 作用区别:HSET 将哈希表 key 中的域 field 的值设为 value .如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作.如果域 field 已经存在于哈希表中,旧值将被覆盖. HSETNX 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在.若域 field 已经存在,该操作无效. 如果 key 不存在,一个新哈希表被创建并执行