KEY(键)

Redis DEL 命令用于删除已存在的键。不存在的 key 会被忽略。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

// The first case 删除单独的 key

$redis->set('w3ckey','redis');

var_dump($redis->get('w3ckey')); // 返回 redis

$redis ->del('w3ckey'); // 删除该key,若需要获取返回值,则返回值为 int(1)

var_dump($redis->get('w3ckey')); // 返回 boolean(false)

// The second case 删除一个不存在的 key

if(!$redis->exists('fake_key'))

{

var_dump($redis->del('fake_key')); // 返回 int();

}

// The third case 同时删除多个 key

$array_mset = array(

'key1' => 'val1',

'key2' => 'val2',

'key3' => 'val3',

);

$redis->mset($array_mset); // 使用 mset 同时存储多个值

$array_mget = array('key1', 'key2', 'key3');

var_dump($redis->mget($array_mget)); // 返回 array (size=3)0 => string 'val1' (length=4) 1 => string 'val2' (length=4) 2 => string 'val3' (length=4)

$redis -> del($array_mget); // 同时删除多个值

var_dump($redis->mget($array_mget)); // 返回 array (size=3) 0 => boolean false 1 => boolean false 2 => boolean false

2、EXISTS

Redis EXISTS 命令用于检查给定 key 是否存在。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->set('w3ckey','redis');

var_dump($redis->exists('w3ckey')); // boolean true

$redis ->del('w3ckey');

var_dump($redis->exists('w3ckey')); // boolean(false)

3、EXPIRE

Redis Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->set('w3ckey','redis');

$redis->expire('w3ckey',20); // 设置 w3ckey 的剩余生存时间为 20s

sleep(2);

var_dump($redis->TTL('w3ckey')); // 查看给定 key 的剩余生存时间,int 18

$redis->expire('w3ckey',30); // 更新 w3ckey 的剩余生存时间为 30s

sleep(3);

var_dump($redis->TTL('w3ckey')); // int 27

4、EXPIREAT

Redis Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。EXPIREAT的作用和EXPIRE一样,都用于为key设置生存时间。不同在于EXPIREAT命令接受的时间参数是UNIX时间戳(unix timestamp)。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->set('w3ckey','redis');

$redis->expireAt('w3ckey',time()+10); // 设置 w3ckey 的剩余生存时间为 10s 后过期

sleep(3);

var_dump($redis->TTL('w3ckey')); // 查看给定 key 的剩余生存时间,int 7

5、KEYS

Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 。

(1)KEYS * 命中数据库中所有key。

(2)KEYS h?llo 命中hello, hallo and hxllo等。

(3)KEYS h*llo 命中hllo和heeeeello等。

(4)KEYS h[ae]llo 命中hello和hallo,但不命中hillo。

(5)特殊符号用""隔开

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->flushAll();

$array_mset_keys = array(

'one' => 1,

'two' => 2,

'three' => 3,

'four' => 4,

);

$redis -> mset($array_mset_keys);

// KEYS * 命中数据库中所有key。

var_dump($redis -> keys('*'));

// array (size=4) 0 => string 'four' (length=4) 1 => string 'two' (length=3) 2 => string 'three' (length=5) 3 => string 'one' (length=3)

// KEYS *o* 命中所有包含 "o" 的key。

var_dump($redis -> keys('*o*'));

// array (size=4) 0 => string 'four' (length=4) 1 => string 'two' (length=3) 2 => string 'one' (length=3)

// KEYS 0?? 命中 "o" 后面有几个问号就命中几位数。

var_dump($redis->keys("o??"));

//array (size=1) 0 => string 'one' (length=3)

// KEYS t[wh]* 命中 "t" 后面跟了 "w" , "h" 或者 "wh" 的key。

var_dump($redis->keys("t[wh]*"));

//array (size=2) 0 => string 'two' (length=3) 1 => string 'three' (length=5)

6、MOVE

Redis Keys 命令用于将当前数据库(默认为0)的key移动到给定的数据库db当中。如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定key,或者key不存在于当前数据库,那么MOVE没有任何效果。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->flushAll();

// This first case: key 存在于当前数据库

$redis -> select(0); // redis 默认使用数据库0,这里在显示指定一次

$redis -> set('favorite_fruit','pineapple'); // 确保 key 值存在

if($redis -> move('favorite_fruit',1)){ // 将 favorite_fruit 移动到数据库 1 中, int 1

$redis -> select(1); // 选择数据库 1

var_dump($redis -> get('favorite_fruit')); // string pineapple

}

// This second case: key 不存在

$redis -> select(0);

if(! $redis->exists('fake_key')){ // key 不存在

$redis -> move('fake_key',1); // 将 favorite_fruit 移动到数据库 1 中, int 0

}

$redis -> select(1);

var_dump($redis->exists('fake_key')); // boolean (false)

// This third case: 源数据库和目标数据库有相同的 key

$redis -> select(0);

$redis -> set('favorite_singer','Jay Chou'); // db0 和 db1 有相同的 key : favorite_singer

$redis -> select(1);

$redis -> set('favorite_singer','Xu Wei');

$redis -> select(0);

$redis -> move('favorite_singer',1); // 将 favorite_fruit 移动到数据库 1 中, int 0

echo $redis -> get('favorite_singer'); // db0 的值没有发生改变,string Jay Chou

$redis -> select(1);

echo $redis -> get('favorite_singer'); // db1 的值没有发生改变,string Xu Wei

7、PERSIST

Redis PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->flushAll();

// This first case: key 存在且设置了过期时间

$redis -> set('favorite_fruit','pineapple');

$redis -> expire('favorite_fruit',20);

sleep(2);

echo $redis -> ttl('favorite_fruit').""; // 18

$redis -> persist('favorite_fruit'); // 移除过期时间

echo $redis -> ttl('favorite_fruit'); // -1 ,表示成功移除过期时间

// This second case: key 不存在

$redis -> select(0);

if(! $redis->exists('fake_key')){ // key 不存在

var_dump($redis -> persist('fake_key')); // boolean false

}

// This third case: key 存在但是没有设置过期时间

$redis -> select(0);

$redis -> set('favorite_singer','Jay Chou');

var_dump($redis -> persist('favorite_singer')); // boolean false

8、TTL

Redis TTL 命令以秒为单位返回 key 的剩余过期时间。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->flushAll();

// This first case: key 存在且设置了过期时间

$redis -> set('favorite_fruit','pineapple');

$redis -> expire('favorite_fruit',20);

sleep(2);

echo $redis -> ttl('favorite_fruit').""; // 18

// This second case: key 不存在

$redis -> select(0);

if(! $redis->exists('fake_key')){ // key 不存在

var_dump($redis -> ttl('fake_key')); // int -2

}

// This third case: key 存在但是没有设置过期时间

$redis -> select(0);

$redis -> set('favorite_singer','Jay Chou');

var_dump($redis -> ttl('favorite_singer')); // int -1

9、RANDOMKEY

Redis RANDOMKEY 命令从当前数据库中随机返回一个 key (不删除) 。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

// This first case: 数据库不为空

$array_mset_randomkey = array(

'fruit' => 'pineapple',

'food' => 'beef',

'drink' => 'beer'

);

$redis -> mset($array_mset_randomkey);

var_dump($redis -> randomKey()); // string 'food' ,随机返回一个 key

var_dump($redis -> keys('*')); // 查看数据库里所有的 key ,验证 randomKey 不删除任何 key

// This second case: 数据库为空

$redis->flushAll(); // 清空数据库里的数据

var_dump($redis -> randomKey()); // boolean false

10、RENAME

Redis Rename 命令用于修改 key 的名称 。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->flushAll();

// This first case: key 存在且 newkey 不存在 ,成功改名

$redis -> set('fruit','pineapple');

$redis -> rename('fruit','favorite_fruit'); // 重命名

var_dump($redis -> exists('fruit')); // boolean false, 原来的 key 已经不存在

var_dump($redis -> exists('favorite_fruit')); // boolean true, key 变成了 newkey

// This second case: key 不存在 ,返回错误

$redis->flushAll();

if(! $redis ->exists('fake_key'))

{

var_dump($redis -> rename('fake_key','never_exists')); // boolean false

}

// This third case: key 和 newkey 相同 ,返回错误

$redis -> set('favorite_singer','Jay Chou');

var_dump($redis -> rename('favorite_singer','favorite_singer')); // boolean false

// This fourth case: newkey 已经存在, 覆盖

$redis -> set('PC','SONY');

$redis -> set('personal_computer','lenovo');

var_dump($redis -> rename('PC','personal_computer')); // boolean true

var_dump($redis -> get('personal_computer')); // string SONY

11、RENAMENX

Redis Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis->flushAll();

// This first case: key 存在且 newkey 不存在 ,成功改名

$redis -> set('fruit','pineapple');

$redis -> renameNx('fruit','favorite_fruit'); // 重命名

var_dump($redis -> exists('fruit')); // boolean false, 原来的 key 已经不存在

var_dump($redis -> exists('favorite_fruit')); // boolean true, key 变成了 newkey

// This second case: newkey已经存在,改名失败

$redis -> set('PC','SONY');

$redis -> set('personal_computer','lenovo');

var_dump($redis -> renameNx('PC','personal_computer')); // boolean false

var_dump($redis -> get('PC')); // string SONY

var_dump($redis -> get('personal_computer')); // string lenovo

12、TYPE

Redis Type 命令用于返回 key 所储存的值的类型。

$redis = new redis();

$redis->connect('127.0.0.1',6379);

// This first case: key 不存在 ,返回 int(0)

$redis->flushAll();

var_dump($redis -> type('fake_key')); // int(0)

// This second case: 字符串类型 ,返回 int(1)

$redis -> set('favorite_fruit','banana');

var_dump($redis -> type('favorite_fruit')); // int(1)

// This third case: 集合类型 , 返回 int(2)

$redis -> sAdd('favorite_singer','Jay Chou');

var_dump($redis -> type('favorite_singer')); // int(2)

// This fourth case: 列表类型 , 返回 int(3)

$redis -> lPush('program','PHP');

var_dump($redis -> type('program')); // int(3)

// This fifth case: 有序类型 , 返回 int(4)

$redis -> zAdd('pats','0','dog');

$redis -> zAdd('pats','1','cat');

$redis -> zAdd('pats','1','pig');

$redis -> zAdd('pats','2','fox');

var_dump($redis -> zRange('pats',0,-1)); // array (size=4) 0 => string 'dog' (length=3) 1 => string 'cat' (length=3) 2 => string 'pig' (length=3) 3 => string 'fox' (length=3)

var_dump($redis -> type('pats')); // int(4)

// This sixth case: 哈希类型 , 返回 int(5)

$redis -> hSet('website','baidu','www.baidu.com');

var_dump($redis -> hGet('website','baidu')); // string www.baidu.com

var_dump($redis -> type('website')); // int(5)

13、sort

返回或保存给定列表、集合、有序集合 key 中经过排序的元素。

排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。

1、sort key ,若保存的值是数字,返回列表值从小到大的结果

// sort key ,按从小到大进行排序

$redis -> flushAll();

$redis -> lPush('number',1.5);

$redis -> lPush('number',18);

$redis -> lPush('number',75);

$redis -> lPush('number',38);

var_dump($redis -> sort('number'));

// array (size=4)

//  0 => string '1.5' (length=3)

//  1 => string '18' (length=2)

//  2 => string '38' (length=2)

//  3 => string '75' (length=2)

2、 若保存的是字符串,使用sort(key,array('ALPHA'=>TRUE))进行排序(按字母表顺序)

$redis = new redis();

$redis -> connect('127.0.0.1',6379);

// 若保存的是字符串,使用sort(key,array('ALPHA'=>TRUE))进行排序(按字母表顺序)

$redis -> flushAll();

$redis -> lPush('website','www.baidu.com');

$redis -> lPush('website','www.google.com');

$redis -> lPush('website','www.tencent.com');

$redis -> lPush('website','www.firefox.com');

var_dump($redis -> sort('website', array('ALPHA'=>TRUE)));

// array (size=4)

// 0 => string 'www.baidu.com' (length=13)

// 1 => string 'www.firefox.com' (length=15)

// 2 => string 'www.google.com' (length=14)

// 3 => string 'www.tencent.com' (length=15)

3、排序之后返回的元素可以通过LIMIT修饰符进行限制

使用sort(key,array('LIMIT'=>array(offset,count)))

LIMIT修饰符接受两个参数:offset 和 count。

offset指定要跳过的元素数量,count指定跳过offset个指定的元素之后,要返回多少个对象。

(1)排序的值为数字:

$redis = new redis();

$redis -> connect('127.0.0.1',6379);

// 若排序之后返回的元素数量可以通过LIMIT修饰符进行限制,使用sort(key,array('LIMIT'=>array(offset,count)))

// LIMIT修饰符接受两个参数:offset和count。

// offset指定要跳过的元素数量,count指定跳过offset个指定的元素之后,要返回多少个对象。

$redis -> flushAll();

$redis -> lPush('rank',5); //1

$redis -> lPush('rank',55); //7

$redis -> lPush('rank',52); //6

$redis -> lPush('rank',25); //4

$redis -> lPush('rank',24); //3

$redis -> lPush('rank',37); //5

$redis -> lPush('rank',13); //2

$redis -> lPush('rank',87); //8

$redis_sort_option = array('LIMIT' => array(2,5)); // 正序排序,跳过 2 个元素,跳过之后返回 5 个元素

var_dump($redis -> sort('rank', $redis_sort_option));

// array (size=5)

// 0 => string '24' (length=2)

// 1 => string '25' (length=2)

// 2 => string '37' (length=2)

// 3 => string '52' (length=2)

// 4 => string '55' (length=2)

$redis_sort_desc = array('LIMIT' => array(2,5),'SORT'=>'desc'); // 逆序排序,跳过 2 个元素,跳过之后返回 5 个元素

var_dump($redis -> sort('rank', $redis_sort_desc));

// array (size=5)

// 0 => string '52' (length=2)

// 1 => string '37' (length=2)

// 2 => string '25' (length=2)

// 3 => string '24' (length=2)

// 4 => string '13' (length=2)

(2)排序的值为字符串

$redis = new redis();

$redis -> connect('127.0.0.1',6379);

// 若排序之后返回的元素数量可以通过LIMIT修饰符进行限制,使用sort(key,array('LIMIT'=>array(offset,count)))

// LIMIT修饰符接受两个参数:offset和count。

// offset指定要跳过的元素数量,count指定跳过offset个指定的元素之后,要返回多少个对象。

$redis -> flushAll();

$redis -> lPush('website','www.baidu.com'); //2

$redis -> lPush('website','www.tencent.com'); //7

$redis -> lPush('website','www.firefox.com'); //3

$redis -> lPush('website','www.wangyi.com'); //8

$redis -> lPush('website','www.google.com'); //4

$redis -> lPush('website','www.software.com'); //6

$redis -> lPush('website','www.12306.cn'); //1

$redis -> lPush('website','www.hao123.com'); //5

$redis_sort_option = array('LIMIT' => array(0,5),'ALPHA'=>TRUE); // 正序排序,如果是字符串的话需要加 "ALPHA"=>TRUE ,跳过 0 个元素,跳过之后返回 5 个元素

var_dump($redis -> sort('website', $redis_sort_option));

// array (size=5)

// 0 => string 'www.12306.cn' (length=12)

// 1 => string 'www.baidu.com' (length=13)

// 2 => string 'www.firefox.com' (length=15)

// 3 => string 'www.google.com' (length=14)

// 4 => string 'www.hao123.com' (length=14)

$redis_sort_desc = array('LIMIT' => array(0,5),'SORT'=>'desc','ALPHA'=>TRUE); // 逆序排序,跳过 0 个元素,跳过之后返回 5 个元素

var_dump($redis -> sort('website', $redis_sort_desc));

// array (size=5)

// 0 => string 'www.wangyi.com' (length=14)

// 1 => string 'www.tencent.com' (length=15)

// 2 => string 'www.software.com' (length=16)

// 3 => string 'www.hao123.com' (length=14)

// 4 => string 'www.google.com' (length=14)

4、使用外部 key 进行排序

有时候会希望使用外部的key作为权重来比较元素,代替默认的对比方法)。

假设现在有用户(user)数据如下:

id name password level

1 Kangkang Kangkang123 5

4 Michael Michael123 3

2 Jane Jane123 2

3 Maria Maria123 7

id 保存在 key 名为 user_id 的列表中;

name 保存在 username_{id} 的 key 中;

password 保存在 userpassword_{id} 的 key 中;

level 保存在 userlevel_{id} 的 key 中。

(1)首先将数据加入到数据库中

$redis = new redis();

$redis -> connect('127.0.0.1',6379);

$redis -> flushAll();

// kangkang

$redis -> lPush('user_id',1);

$redis -> set('username_1','Kangkang');

$redis -> set('userpassword_1','Kangkang123');

$redis -> set('userlevel_1',5);

// Michael

$redis -> lPush('user_id',4);

$redis -> set('username_4','Michael');

$redis -> set('userpassword_4','Michael123');

$redis -> set('userlevel_4',3);

// Jane

$redis -> lPush('user_id',2);

$redis -> set('username_2','Jane');

$redis -> set('userpassword_2','Jane123');

$redis -> set('userlevel_2',2);

// Maria

$redis -> lPush('user_id',3);

$redis -> set('username_3','Maria');

$redis -> set('userpassword_3','Maria123');

$redis -> set('userlevel_3',7);

(2)如果希望按 level 从大到小的顺序排序,可以这样做:

// 按 level 从大到小排序 id

$array_sort_option = array(

'BY' => 'userlevel_*',

'SORT' => 'DESC',

);

var_dump($redis -> sort('user_id',$array_sort_option));

// array (size=4)

// 0 => string '3' (length=1)

// 1 => string '1' (length=1)

// 2 => string '4' (length=1)

// 3 => string '2' (length=1)

// 有时候只是返回相应的id没有什么用,你可能更希望排序后返回id对应的用户名,GET 可以帮忙实现

$array_sort_option = array(

'BY' => 'userlevel_*',

'SORT' => 'DESC',

'GET' => 'username_*'

);

var_dump($redis -> sort('user_id',$array_sort_option));

// array (size=4)

// 0 => string 'Maria' (length=5)

// 1 => string 'Kangkang' (length=8)

// 2 => string 'Michael' (length=7)

// 3 => string 'Jane' (length=4)

// 若不但希望获取用户名,还希望连用户的密码也一并列出,可以使用以下命令,可以多次地、有序地使用 GET 操作来获取更多外部 key

$array_sort_option = array(

'BY' => 'userlevel_*',

'SORT' => 'DESC',

'GET' => array('#','username_*','userpassword_*') // 注意GET操作是有序的,GET username_* GET userpassword_* 和 GET userpassword_* GET username_*返回的结果位置不同, '#',为当前元素

);

var_dump($redis -> sort('user_id',$array_sort_option));

// array (size=12)

// 0 => string '3' (length=1)

// 1 => string 'Maria' (length=5)

// 2 => string 'Maria123' (length=8)

// 3 => string '1' (length=1)

// 4 => string 'Kangkang' (length=8)

// 5 => string 'Kangkang123' (length=11)

// 6 => string '4' (length=1)

// 7 => string 'Michael' (length=7)

// 8 => string 'Michael123' (length=10)

// 9 => string '2' (length=1)

// 10 => string 'Jane' (length=4)

// 11 => string 'Jane123' (length=7)

(3)只获取对象而不排序(若希望获取外部对象而又不希望引起排序开销时使用,BY修饰符可以将一个不存在的key当作权重,让SORT跳过排序操作)。

// 此处无论是 ASC 还是 DESC 都无效,是按照先 lpush 的user_id 在走后,后 lpush 的user_id 在最前

if(!$redis -> exists('fake_key')){

$array_sort_option1 = array(

'BY' => 'fake_key',

'GET' => array('#','username_*','userpassword_*')

);

var_dump($redis -> sort('user_id',$array_sort_option1));

}

// array (size=12)

// 0 => string '3' (length=1)

// 1 => string 'Maria' (length=5)

// 2 => string 'Maria123' (length=8)

// 3 => string '2' (length=1)

// 4 => string 'Jane' (length=4)

// 5 => string 'Jane123' (length=7)

// 6 => string '4' (length=1)

// 7 => string 'Michael' (length=7)

// 8 => string 'Michael123' (length=10)

// 9 => string '1' (length=1)

// 10 => string 'Kangkang' (length=8)

// 11 => string 'Kangkang123' (length=11)

(4)保存排序结果

默认情况下,SORT操作只是简单地返回排序结果,如果你希望保存排序结果,可以给 STORE 选项指定一个key作为参数,排序结果将以列表的形式被保存到这个key上。(若指定key已存在,则覆盖。)

// 使用 STORE 之后,可以将结果以 list 的形式保存在 STORE 所定义的 key 中。

$array_sort_option = array(

'BY' => 'userlevel_*',

'SORT' => 'DESC',

'GET' => array('#','username_*','userpassword_*'),

'STORE' => 'userinfo_sort_by_level'

);

var_dump($redis -> sort('user_id',$array_sort_option)); // int 12

var_dump($redis -> lRange('userinfo_sort_by_level',0,-1));

// array (size=12)

// 0 => string '3' (length=1)

// 1 => string 'Maria' (length=5)

// 2 => string 'Maria123' (length=8)

// 3 => string '1' (length=1)

// 4 => string 'Kangkang' (length=8)

// 5 => string 'Kangkang123' (length=11)

// 6 => string '4' (length=1)

// 7 => string 'Michael' (length=7)

// 8 => string 'Michael123' (length=10)

// 9 => string '2' (length=1)

// 10 => string 'Jane' (length=4)

// 11 => string 'Jane123' (length=7)

一个有趣的用法是将SORT结果保存,用EXPIRE为结果集设置生存时间,这样结果集就成了SORT操作的一个缓存。这样就不必频繁地调用SORT操作了,只有当结果集过期时,才需要再调用一次SORT操作。

有时候为了正确实现这一用法,你可能需要加锁以避免多个客户端同时进行缓存重建(也就是多个客户端,同一时间进行SORT操作,并保存为结果集),具体参见SETNX命令。

php redis key,redis 在 php 中的应用(key篇)相关推荐

  1. python中key什么意思_Python中字典的key都可以是什么

    作者:Inotime 来源:CSDN 原文:https://blog.csdn.net/lnotime/article/details/81192207 答:一个对象能不能作为字典的key,就取决于其 ...

  2. redis学习-redis五大数据类型

    五大数据类型简介 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. 也就是例子中的k1 v1,k2 v2 s ...

  3. Redis(超级无敌认真好用,万字收藏篇!!!!)

    文章目录 Redis 前言 NOSQL数据库 1 Redis介绍 1.1 Redis的特征 1.2 Redis应用场景 1.3 Redis的安装 1.4 Redis不同版本的线程问题 2 Redis常 ...

  4. php redis删除所有key,redis中批量删除key的方法

    Redis是一个高性能的key-value数据库.redis中可以借助Linux的xargs指令来批量删除key,也可以使用flushdb和flushall命令删除所有key. 批量删除Key Red ...

  5. Redis中查找大key

    首发于 https://segmentfault.com/a/11... redis-cli提供的方法 注意以下所有试验基于redis 5.0.3版本 redis-cli 提供一个bigkeys参数, ...

  6. java获取redis中各种数据类型key对应的value代码简单封装

    来源:http://blog.csdn.net/russ44/article/details/52121180 目前在做自动化测试时,设计到需要获取存储在redis中的值,总结了操作代码如下: 需要j ...

  7. Redis中存字段key出现 \xef \xbb \xbf

    环境: java向redis中存数据用于重复判断,结果有一条记录居然去不了重复,用Redis DeskTop Manager 查看发现,有一个 key 中居然是这样的: 20190324157:\xE ...

  8. key redis 遍历_解惑:Redis的HSCAN命令中COUNT参数的quot;失效quot;场景

    前提 ❝ 这是一篇Redis命令使用不当的踩坑经历分享 ❞ 笔者最近在做一个项目时候使用Redis存放客户端展示的订单列表,列表需要进行分页.由于笔者先前对Redis的各种数据类型的使用场景并不是十分 ...

  9. 如何在Redis中查找大key

    工作中,经常有些Redis实例使用不恰当,或者对业务预估不准确,或者key没有及时进行处理等等原因,导致某些KEY相当大.  那么大Key会带来哪些问题呢? 如果是集群模式下,无法做到负载均衡,导致请 ...

最新文章

  1. 零基础入门学习Python(36) 类和对象:继承
  2. Go switch语句
  3. 字节跳动最新开源!沈阳java培训哪个好
  4. Hibernate之一级缓存和二级缓存
  5. 【Linux环境部署】最新版 elasticsearch + kibana(7.15.0)安装、配置、启动(多个问题处理 + kibana仪表盘使用)
  6. layui 行悬停显示工具_Minitab | 工具栏和状态栏
  7. Python 之父:别等了,Python 4.0 可能不会来了
  8. Win10系列:VC++ Direct3D模板介绍1
  9. 前端学习(2024)vue之电商管理系统电商系统之根据分页获取订单列表数据
  10. Django学习--form(表单)
  11. 【javascript】浮点数运算问题分析及解决方法
  12. 这次都安排上了,零食好物全都 9 块 9 。
  13. c++ 虚函数实现原理
  14. imageio.write页面怎么显示_微信吃喝玩乐怎么没有了?微信支付页面吃喝玩乐在哪里...
  15. 1960-征战的Loy
  16. php phalcon 安装,Phalcon框架安装与使用教程介绍
  17. 8种适用于不同机器学习问题的常用数据集
  18. Powell算法、Powell修正算法_matlab仿真
  19. Calcite CBO 分析1
  20. Oracle清理回收站的方法

热门文章

  1. 网址被微信拦截怎么办 微信屏蔽的域名如何正常访问
  2. Zookeeper是什么?
  3. wait/waitpid函数与僵尸进程、fork 2 times
  4. IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的...
  5. 如何划分man文档的章节
  6. hdu 5131 Song Jiang#39;s rank list 【2014ACM/ICPC亚洲区广州站-重现赛】
  7. Alcatraz插件安装问题
  8. BUTTON标签和INPUT标签的区别【转】
  9. 【小技巧积累】设置ListView控件的Item不在Tab键导航序列中
  10. Mac下文件的编码及修改编码