首先保证自己的reids是否启动成功,端口号是否正确
laravel 根目录composer require predis/predis安装predis 包
config/queue.php配置:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
// 'queue' => env('REDIS_QUEUE', 'default'),
'queue' => '{default}',
'retry_after' => 90,
'block_for' => null,
'after_commit' => false,
]
confing/darabaes文件
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
.env文件
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
字符串类型
public function testStringRedis()
{
// 字符串类型
// $redis = Redis::connection();
// $redis->set("string_name", "我是字符串类型的值");
// dd($redis->get("string_name"));
// 设置有效期,单位是秒(S)
// $redis = Redis::connection();
// $redis->setex('string_name', 50, '我是字符串类型的值s'); // 设置有效期为50秒的键值
// dd($redis->get("string_name"));
// 设置有效期,但是是毫秒(ms) 50000/1000 = 50
// $redis = Redis::connection();
// $redis->psetex('string_name', 50000, '我是字符串类型的值ms'); // 设置有效期为50秒的键值
// dd($redis->get("string_name"));
// 带条件的存储
// Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。
// $redis = Redis::connection();
// $redis->setnx('string_name', '我是字符串类型的值_setnx_1');
// dd($redis->get("string_name"));
// 删除
// $redis = Redis::connection();
// $redis->del('string_name');
// dd($redis->get("string_name"));
// 是否存在
if (Redis::exists('string_name')) {
$value = Redis::get("string_name");
dd($value);
} else {
dd("从数据库里面取值");
}
}
hash类型
// 测试redis的基础类型hash
public function testHashRedis()
{
// hash
// $redis = Redis::connection();
// $redis->hset('test1', 'key1', 'v1');
// $redis->hset('test1', 'key2', 'v2');
// dd($redis->hget('test1', 'key1'));
// 增加一个元素
// Redis::hset("test", "key1", "v1_new");
// dd(Redis::hget("test", "key3"));
// 添加一个元素,判断
//Redis::hsetnx("test", "key4", "v4");
// hmset/hmget 存取多个元素到hash表
// Redis::hmset('test', array('key5' => 'v5', 'key6' => 'v6'));
// dd(Redis::hmget('test', array('key5', 'key6')));
// 删除
// Redis::hdel('test', 'key1');
// 返回hash的长度
// dd(Redis::hlen('test'));
// 返回hash表中的所有key
// dd(Redis::hkeys('test'));
// 返回hash表中的所有value
// dd(Redis::hvals('test'));
// 获取 hash 中所有的key-value
// dd(Redis::hgetall('test'));
// 返回hash表中的指定key是否存在
if (Redis::hexists('test', 'key1')) {
dd(Redis::hget("test", "key1"));
} else {
dd("不存在,可以从数据库取");
}
dd(111);
}
list类型
// 测试redis的list类型
public function testListRedis(){
// 左添加 在左(头部)添加数据到list中 不存在时创建 返回值为添加元素后list的长度
// Redis::lpush('list', 1);
// Redis::lpush('list', 2);
// Redis::lpush('list', 3);
// 左添加 在左(头部)添加数据到list1中 不存在时不创建 返回0
// Redis::lpushx('list1', 3);
// 右添加, 在右(尾部)添加数据到list中 不存在时创建 返回值为添加元素后list的长度
// Redis::rpush('list', 4);
//在右(尾部)添加数据到list中 不存在时不创建 返回0
// Redis::rpushx("list1", 3);
// 从左(头部)取出list中数据 返回值为取出的数据 若不存在当前key的话,返回nul
// 取出的是头部第一个元素,就删除了此元素
// dd(Redis::lpop('list'));
// 4.从右(尾部)取出list中数据 返回值为取出的数据
// 取出的是尾部第一个元素,就删除了此元素
// dd(Redis::rpop('list'));
// 获取该key中所有数据 是个数组
// dd(Redis::lrange('list', 0, -1));
// 获取key为list的list集合中 索引为0的数据
// dd(Redis::lindex('list', 0));
// 将list集合中索引为0的value值改为3
// Redis::lset("list", 0, 3);
// 获取该list的长度
// dd(Redis::llen('list'));
// 只保留索引0到索引1的value值 其余的都删除
// Redis::lpush('list', 4);
// Redis::lpush('list', 5);
// Redis::lpush('list', 6);
// Redis::ltrim("list", 0, 1);
// 删除list列表右边的最后一个元素将其追加到list1列表,list1不存在会创建 返回值为那个元素的value值
Redis::rpoplpush('list','list1');
dd(1111111);
}