常用 redis 命令

Redis 主要能存储 5 种数据结构,分别是 strings,hashes,lists,sets 以及 sorted sets。

新建一个 redis 数据库

$redis = new Redis();

// false => fail
// true => success
$isSuccess = $redis->connect('127.0.0.1', 6379);

Strings

Strings 非常简单,基本用法是接收两个参数当做 key-value 键值对存入 redis,还可以设置存入 redis 的有效时间(ttl)。

// String
$redis->set('name', 'hanzichi');

// with a ttl of seconds
// 有效时间为 10s
$redis->setEx('name', 10, 'hanzichi');

// with a ttl of milliseconds
// 有效时间为 1000 milliseconds
$redis->pSetEx('name', 1000, 'hanzichi');

$name = $redis->get('name'); // hanzichi

Hashes

Hashes 基本用法传入三个参数,第一个参数为 key 值,表示该 hash 集合的名字,后面两个参数为键值对。

// Hashes
$key = 'library';
// 存入名为 library 的 hash 中
$redis->hset($key, 'name', 'shanghai_library');
$redis->hset($key, 'age', '20');
$redis->hset($key, 'place', 'Pudong');

$name = $redis->hget($key, 'name'); // shanghai_library
var_dump($redis->hKeys($key));
var_dump($redis->hVals($key));
var_dump($redis->hGetAll($key));

比如上面例子的 hash 集合为 library,age-20 等为键值对,很像 JavaScript 中的对象,library 为对象名。

Lists

Lists 类似数组。

// List
$redis->rpush('stars', 'Chris Paul');
$redis->rpush('stars', 'Jason Kidd');

// return all the elements
$stars = $redis->lrange('stars', 0, -1); // ['Chris Paul', 'Jason Kidd']

如上,stars 即为数组名,可以用一系列方法对该 "数组" 进行操作。

Sets

sets,顾名思义,就是集合,集合,当然会去重。第一个参数还是为 key,为集合名。

// Sets
$redis->sadd('country', 'China');
$redis->sadd('country', array('Japan', 'England'));

// 是否在集合中
$isInSet = $redis->sismember('country', 'China'); // true

Sorted Sets

和 sets 不同的是,Sorted Sets 可以接收另外一个 double 类型的参数,根据该参数可以返回具体的 value 值。

// Sorted Sets
$redis->zAdd('province', 1, 'Zhejiang');
$redis->zAdd('province', 0, 'Fujian');
$redis->zAdd('province', 5, 'Beijing');
$province = $redis->zRange('province', 0, -1); 
var_dump($province);
/*
array
 0 => string 'Fujian' (length=6)
 1 => string 'Zhejiang' (length=8)
 2 => string 'Beijing' (length=7)
 */

其他

// 获取当前 redis 中 keys 数量
$count = $redis->dbSize();
echo $count;


// 获取 keys 
$arList = $redis->keys("*");  
var_dump($arList);

// 获取以 pro 为前缀的 keys 
$keyWithUserPrefix = $redis->keys('pro*');
var_dump($keyWithUserPrefix);


// Remove all keys from all databases.
$redis->flushAll();


// Remove all keys from the current database.
$redis->flushDb();

More

更多可以参考以下:

  • phpredis/phpredis (推荐,针对 php 各种 api 使用方式)
  • PHP-redis 中文文档
  • An Introduction to Redis in PHP using Predis
  • getting-started-with-redis-in-php
  • How to Use Redis with PHP using PhpRedis with Examples
  • redis php 实例一
  • redis php 实例二
  • The basic use case of redis in PHP (一堆代码)
  • Redis 命令参考 (不是单独针对 php 的)
  • redis 官网

你可能感兴趣的:(常用 redis 命令)