本文主要跟大家分享php操作redis的命,希望能幫助大家。
確認伺服器已開啟redis服務
redis的連接埠號碼預設是6379
一個小範例程式碼
header(“content-type:text/html;charset=utf8”); //声明redis对象实例 redis->connect(“localhost”,6379); //如果redis开启了安全认证,那么我们需要使用redis中的auth方法去通过安全认证密码 $redis->auth(“123456”); // redis->hmset(“stars:jay”,array(“name”=>’周杰伦’,’age’=>33,’lover’=>”蓝球”)); // 获取哈希表的值 // redis->hgetall(“stars:jay”); //使用sadd方法添加一个名为lessons的无序集合 // redis->sadd(“lessons”,”java”); // 使用smembers方法获取一个无序集合中的所有元素 // redis->smembers(“lessons”); // // 使用zadd方法添加一个名为girls的有序集合 // redis->zadd(“girls”,4,”斯”); // data= data1=$redis->zrevrange(“girls”,0,-1); //降序获取集合的数据 //消息队列 //exists为判断此键名是否存在 if( movies = array( “17:00开始正在播放电影<叶问3>”, “20:00开始正在播放电影<叶问4>”, “22:00开始正在播放电影<叶问5>”, ); foreach ( movie) { //rpush为以队列形式压入list movie); }
//连接本地的 Redis 服务 $redis = new Redis(); $redis->connect(‘127.0.0.1’, 6379); $redis->auth(‘123456’); /****************Key(键)****************/ //DEL key [key …]——删除给定的一个或多个key redis->del(array(‘xrj’,’ly’,’fjf’)); //KEYS pattern——查找所有符合给定模式pattern的key redis->keys(‘*’); //RANDOMKEY——从当前数据库中随机返回(不删除)一个key redis->randomkey(); //TTL key——以秒为单位,返回给定key的剩余生存时间(TTL, time to live) //PTTL key——以毫秒为单位,返回给定key的剩余生存时间 redis->ttl(‘bbs’); //EXISTS key——检查给定key是否存在,存在,返回1,否则返回0 redis->exists(‘email’); //MOVE key db——将当前数据库的key移动到给定的数据库db当中 redis->move(‘email’,1); $redis->select(1); redis->keys(‘*’); redis->move(‘email’,0); //RENAME key newkey——将key改名为newkey redis->rename(‘email’,’e-eamil.com’); redis->rename(‘e-eamil.com’,’eamil’); //RENAMENX key newkey——当且仅当newkey不存在时,将key改名为newkey redis->renamenx(‘bbs’,’bbs1’); //TYPE key——返回key所储存的值的类型 redis->type(‘pageview’); //EXPIRE key seconds——给key设置生存时间,当key过期时,它会被自动删除 //PEXPIRE key milliseconds——以毫秒为单位设置key的生存时间 //EXPIREAT key timestamp——命令接受的时间参数是UNIX时间戳,key存活到一个unix时间戳时间 //PERSIST key——移除给定key的生存时间,转换成一个不带生存时间,永不过期的key //SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern …]] [ASC | DESC] [ALPHA] [STORE destination]——返回或保存给定列表、集合、有序集合key中经过排序的元素 /***********String(字符串)相关操作**********/ //SET key value——将字符串值value关联到key,会覆盖 redis->set(‘email’,’jiang@58haha.cn’); //SETNX key value——将key的值设为value,当且仅当key不存在的时候,成功返回1,不成功返回0 redis->setnx(‘email’,’jiang@58haha.cn’); //SETEX key seconds value——将值value关联到key,并将key的生存时间设为seconds(以秒为单位) redis->setex(‘name’,10086,’江’); //PSETEX key milliseconds value——命令和SETEX命令相似,它以毫秒为单位设置key的生存时间 redis->psetex(‘jiang’,90000,’哈哈哈’); //MSET key value [key value …]——同时设置一个或多个key-value对 redis->mset(array(‘ly’ => ‘liyang’, ‘fjf’ => ‘fengjingfeng’)); //MSETNX key value [key value …]——同时设置一个或多个key-value对,当且仅当所给定key都不存在 redis->msetnx(array(‘ly’ => ‘liyang’, ‘xrj’=>’xingrongjiang’, ‘fjf’ => ‘fengjingfeng’)); //APPEND key value——如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值的末尾。如果key不存在,APPEND就像执行SET key value一样 redis->append(‘ly’,’love’); //GET key——返回key所关联的字符串值,如果key不存在那么返回特殊值nil,GET只能用于处理字符串值 redis->get(‘ly’); //MGET key [key …]——返回所有(一个或多个)给定key的值,如果给定的key里面有某个key不存在,那么这个key返回特殊值nil,命令永不失败 redis->mget(array(‘email’,’ly’,’fjf’)); //GETRANGE key start end——返回key中字符串值的子字符串,字符串的截取范围由start和end两个偏移量决定(包括start和end在内),负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个 redis->getrange(‘email’,0,-1); //从第一个到最后一个,相当于直接get //GETSET key value——将给定key的值设为value,并返回key的旧值(old value) redis->getset(‘email’,’jiangzunshao@163.com’); //STRLEN key——返回key所储存的字符串值的长度 redis->strlen(‘email’); //DECR key——将key中储存的数字值减一,如果key不存在,那么key的值会先被初始化为0,然后再执行DECR操作 redis->decr(‘pageview’); //INCR key——将key中储存的数字值增一,如果key不存在,那么key的值会先被初始化为0,然后再执行INCR操作 redis->incr(‘pageview1’); //DECRBY key decrement——将key所储存的值减去减量decrement(可以为负值) redis->decrby(‘pageview’,3); //INCRBY key increment——将key所储存的值加上增量increment(可以为负值) redis->incrby(‘pageview’,6); /***********Hash(哈希表)相关操作**********/ //HSET key field value——将哈希表key中的域field的值设为value,新建返回1,覆盖返回0 redis->hset(“user”,”jiang@58haha.cn”,”{‘name’:’jiangzunshao’,’age’:25,’work’:’php’,’city’:’BeiJing’}”); //HSETNX key field value——将哈希表key中的域field的值设置为value,当且仅当域field不存在的时候. 设置成功,返回1。如果已经存在且没有操作被执行,返回0 redis->hsetnx(“user”,”jiang@58haha.cn”,”{‘name’:’jiangzunshao’,’age’:25,’work’:’php’,’city’:’BeiJing’}”); //HGET key field——返回哈希表key中给定域field的值 redis->hget(“user”,”jiang@58haha.cn”); //HMSET key field value [field value …]——同时将多个field-value(域-值)对设置到哈希表 key中 redis->hmset(‘user’,array(‘name’=>’jiangzunshao’, ‘age’ => 20)); //HMGET key field [field …]——返回哈希表 key中,一个或多个给定域的值 redis->hmGet(‘user’, array(‘name’, ‘age’)); //HGETALL key——返回哈希表key中,所有的域和值 redis->hgetall(‘user’); //HDEL key field [field …]——删除哈希表key中的一个或多个指定域,不存在的域将被忽略 redis->hdel(‘user’,’age’); //HLEN key——返回哈希表key中域的数量 redis->hlen(‘user’); //HEXISTS key field——查看哈希表key中,给定域field是否存在,存在返回1,不存在返回0 redis->hexists(‘user’,’jiang@58haha.cn’); //HINCRBY key field increment——为哈希表key中的域field的值加上增量increment,可以为负 redis->hincrby(‘user’,’pv’,5); //HKEYS key——返回哈希表key中的所有域 redis->hkeys(‘user’); //HVALS key——返回哈希表key中所有域的值 redis->hvals(‘user’); /***********List(列表)相关操作**********/ //LPUSH key value [value …]——将数据插入列表的头部 $redis->lpush(‘dbs’,’mongodb-3.2’); //RPUSH key value [value …]——将数据插入列表的尾部 $redis->rpush(‘dbs’,’redis’); //LLEN key——获取列表的长度 redis->llen(‘dbs’); //LPOP key——移除并返回列表的头元素 redis->lpop(‘dbs’); //RPOP key——移除并返回列表的尾元素 redis->rpop(‘dbs’); //LRANGE key start stop——返回列表中指定区间内元素 redis->lrange(‘dbs’,0,$redis->llen(‘dbs’)); redis->lrange(‘dbs’,0,-1); //LSET key index value——将列表下标为index的元素的值设置为value redis->lset(‘dbs’,1,’jiang’); //LTRIM key start stop——列表只保留指定区间内的元素 redis->ltrim(‘dbs’,3,5); //LINDEX key index——返回列表中下标为index的元素 redis->lindex(‘dbs’,$redis->llen(‘dbs’)-1); //LINSERT key BEFORE|AFTER pivot value——将值value插入到列表当中,位于值pivot之前或之后 redis->linsert(‘dbs’,Redis::BEFORE,’mysql’,’mysqlmysql’); redis->linsert(‘dbs’,Redis::AFTER,’redis’,’redisredis’); //RPOPLPUSH source destination——命令RPOPLPUSH在一个原子时间内执行以下两个动作:1,将列表source中的最后一个元素(尾元素)弹出,并返回给客户端;2,将source弹出的元素插入到列表destination,作为destination列表的的头元素 redis->rpoplpush(‘dbs1’,’dbs’); /***********Set(集合)相关操作**********/ //SADD key member [member …]——将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略 redis->sadd(‘set’, ‘xingrongjiang’); //SREM key member [member …]——移除集合key中的一个或多个member元素,不存在的member元素会被忽略 redis->srem(‘set’,’Array’); //SMEMBERS key——返回集合key中的所有成员 redis->smembers(‘set’); //SISMEMBER key member——判断member元素是否集合key的成员 redis->sismember(‘set’,’liyang’); //SCARD key——返回集合key的基数(集合中元素的数量) redis->scard(‘set’); //SMOVE source destination member——将member元素从source集合移动到destination集合 redis->smove(‘set’,’set1’,’xingrongjiang’); //SPOP key——移除并返回集合中的一个随机元素 redis->spop(‘set’); //SRANDMEMBER key [count]——如果只提供了key参数,那么返回集合中的一个随机元素;如果count为正数,且小于集合基数,返回一个包含count个元素的数组,数组中的元素各不相同;如果count大于等于集合基数,返回整个集合;如果count为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为count的绝对值 redis->srandmember(‘set’,2); //SINTER key [key …]——返回一个集合的全部成员,该集合是所有给定集合的交集 redis->sinter(‘set’); //SINTERSTORE destination key [key …]——类似于SINTER命令,它将结果保存到destination集合,而不是简单地返回结果集 redis->sinterstore(‘haha’,’set’); //SUNION key [key …]——返回一个集合的全部成员,该集合是所有给定集合的并集 redis->sunion(‘set’,’set1’); //SUNIONSTORE destination key [key …]——类似于SUNION命令,它将结果保存到destination集合,而不是简单地返回结果集 redis->sunionstore(‘haha1’,’haha’,’set1’); //SDIFF key [key …]——返回一个集合的全部成员,该集合是所有给定集合之间的差集 redis->sdiff(‘set’,’set1’); /******有序集(Sorted set)相关操作*****/ //ZADD key score member——向名称为key的zset中添加元素member,score用于排序,如果该元素已经存在,则根据score更新该元素的顺序 redis->zadd(‘site’, 10, ‘google.com’); redis->zadd(‘site’, 9, ‘baidu.com’); redis->zadd(‘site’, 8, ‘sina.com.cn’); //ZREM key member——删除名称为key的zset中的元素member // redis->zrem(‘site’,’sina.com.cn’); //ZCARD key——返回名称为key的zset的所有元素的个数 redis->zcard(‘site’); //ZCOUNT key min max——返回有序集key中,score值在min和max之间的成员的数量 redis->zcount(‘site’,6,9); //ZSCORE key member——返回有序集key中,成员member的score值 redis->zscore(‘site’,’baidu.com’); //ZINCRBY key increment member——为有序集key的成员member的score值加上增量increment,返回值就是score加上increment的结果 redis->zincrby(‘site’,10,’baidu.com’); //ZRANGE key start stop [WITHSCORES]——返回有序集key中,指定区间内的成员,其中成员的位置按score值递增(从小到大)来排序 redis->zrange(‘site’,0,-1); redis->zrange(‘site’,0,-1,true); //ZREVRANGE key start stop [WITHSCORES]——返回有序集key中,指定区间内的成员,其中成员的位置按score值递减(从大到小)来排列 redis->zrevrange(‘site’,0,-1); redis->zrevrange(‘site’,0,-1,true); /***********Connection(连接)**********/ //AUTH password——密码认证 redis->auth(‘123456’); //PING——查看连接状态 redis->ping(); //SELECT index——切换到指定的数据库,数据库索引号index用数字值指定,以0作为起始索引值,默认使用0号数据库 redis->select(1); /***********Server(服务器)**********/ //TIME——返回当前服务器时间,一个包含两个字符串的列表:第一个字符串是当前时间(以UNIX时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数 redis->time(); //DBSIZE—–返回当前数据库的key的数量 redis->dbsize(); //BGREWRITEAOF——使用aof来进行数据库持久化 redis->bgrewriteaof(); //SAVE——将数据同步保存到磁盘 redis->save(); //BGSAVE——将数据异步保存到磁盘 redis->bgsave(); //LASTSAVE——返回上次成功将数据保存到磁盘的Unix时戳 redis->lastsave(); //SLAVEOF host port——选择从服务器 $redis->slaveof(‘10.0.1.7’, 6379); //FLUSHALL——清空整个Redis服务器的数据(删除所有数据库的所有key) $redis->flushall(); //FLUSHDB——清空当前数据库中的所有key $redis->flushdb(); //INFO [section]——返回关于 Redis 服务器的各种信息和统计数值 redis->info(); 确认服务器已开启redis服务 redis的端口号默认是6379 一个小例子代码 header(“content-type:text/html;charset=utf8”); //声明redis对象实例 redis->connect(“localhost”,6379); //如果redis开启了安全认证,那么我们需要使用redis中的auth方法去通过安全认证密码 $redis->auth(“123456”); // redis->hmset(“stars:jay”,array(“name”=>’周杰伦’,’age’=>33,’lover’=>”蓝球”)); // 获取哈希表的值 // redis->hgetall(“stars:jay”); //使用sadd方法添加一个名为lessons的无序集合 // redis->sadd(“lessons”,”java”); // 使用smembers方法获取一个无序集合中的所有元素 // redis->smembers(“lessons”); // // 使用zadd方法添加一个名为girls的有序集合 // redis->zadd(“girls”,4,”斯”); // data= data1=$redis->zrevrange(“girls”,0,-1); //降序获取集合的数据 //消息队列 //exists为判断此键名是否存在 if( movies = array( “17:00开始正在播放电影<叶问3>”, “20:00开始正在播放电影<叶问4>”, “22:00开始正在播放电影<叶问5>”, ); foreach ( movie) { //rpush为以队列形式压入list movie); } //连接本地的 Redis 服务 $redis = new Redis(); $redis->connect(‘127.0.0.1’, 6379); $redis->auth(‘123456’); /****************Key(键)****************/ //DEL key [key …]——删除给定的一个或多个key redis->del(array(‘xrj’,’ly’,’fjf’)); //KEYS pattern——查找所有符合给定模式pattern的key redis->keys(‘*’); //RANDOMKEY——从当前数据库中随机返回(不删除)一个key redis->randomkey(); //TTL key——以秒为单位,返回给定key的剩余生存时间(TTL, time to live) //PTTL key——以毫秒为单位,返回给定key的剩余生存时间 redis->ttl(‘bbs’); //EXISTS key——检查给定key是否存在,存在,返回1,否则返回0 redis->exists(‘email’); //MOVE key db——将当前数据库的key移动到给定的数据库db当中 redis->move(‘email’,1); $redis->select(1); redis->keys(‘*’); redis->move(‘email’,0); //RENAME key newkey——将key改名为newkey redis->rename(‘email’,’e-eamil.com’); redis->rename(‘e-eamil.com’,’eamil’); //RENAMENX key newkey——当且仅当newkey不存在时,将key改名为newkey redis->renamenx(‘bbs’,’bbs1’); //TYPE key——返回key所储存的值的类型 redis->type(‘pageview’); //EXPIRE key seconds——给key设置生存时间,当key过期时,它会被自动删除 //PEXPIRE key milliseconds——以毫秒为单位设置key的生存时间 //EXPIREAT key timestamp——命令接受的时间参数是UNIX时间戳,key存活到一个unix时间戳时间 //PERSIST key——移除给定key的生存时间,转换成一个不带生存时间,永不过期的key //SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern …]] [ASC | DESC] [ALPHA] [STORE destination]——返回或保存给定列表、集合、有序集合key中经过排序的元素 /***********String(字符串)相关操作**********/ //SET key value——将字符串值value关联到key,会覆盖 redis->set(‘email’,’jiang@58haha.cn’); //SETNX key value——将key的值设为value,当且仅当key不存在的时候,成功返回1,不成功返回0 redis->setnx(‘email’,’jiang@58haha.cn’); //SETEX key seconds value——将值value关联到key,并将key的生存时间设为seconds(以秒为单位) redis->setex(‘name’,10086,’江’); //PSETEX key milliseconds value——命令和SETEX命令相似,它以毫秒为单位设置key的生存时间 redis->psetex(‘jiang’,90000,’哈哈哈’); //MSET key value [key value …]——同时设置一个或多个key-value对 redis->mset(array(‘ly’ => ‘liyang’, ‘fjf’ => ‘fengjingfeng’)); //MSETNX key value [key value …]——同时设置一个或多个key-value对,当且仅当所给定key都不存在 redis->msetnx(array(‘ly’ => ‘liyang’, ‘xrj’=>’xingrongjiang’, ‘fjf’ => ‘fengjingfeng’)); //APPEND key value——如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值的末尾。如果key不存在,APPEND就像执行SET key value一样 redis->append(‘ly’,’love’); //GET key——返回key所关联的字符串值,如果key不存在那么返回特殊值nil,GET只能用于处理字符串值 redis->get(‘ly’); //MGET key [key …]——返回所有(一个或多个)给定key的值,如果给定的key里面有某个key不存在,那么这个key返回特殊值nil,命令永不失败 redis->mget(array(‘email’,’ly’,’fjf’)); //GETRANGE key start end——返回key中字符串值的子字符串,字符串的截取范围由start和end两个偏移量决定(包括start和end在内),负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个 redis->getrange(‘email’,0,-1); //从第一个到最后一个,相当于直接get //GETSET key value——将给定key的值设为value,并返回key的旧值(old value) redis->getset(‘email’,’jiangzunshao@163.com’); //STRLEN key——返回key所储存的字符串值的长度 redis->strlen(‘email’); //DECR key——将key中储存的数字值减一,如果key不存在,那么key的值会先被初始化为0,然后再执行DECR操作 redis->decr(‘pageview’); //INCR key——将key中储存的数字值增一,如果key不存在,那么key的值会先被初始化为0,然后再执行INCR操作 redis->incr(‘pageview1’); //DECRBY key decrement——将key所储存的值减去减量decrement(可以为负值) redis->decrby(‘pageview’,3); //INCRBY key increment——将key所储存的值加上增量increment(可以为负值) redis->incrby(‘pageview’,6); /***********Hash(哈希表)相关操作**********/ //HSET key field value——将哈希表key中的域field的值设为value,新建返回1,覆盖返回0 redis->hset(“user”,”jiang@58haha.cn”,”{‘name’:’jiangzunshao’,’age’:25,’work’:’php’,’city’:’BeiJing’}”); //HSETNX key field value——将哈希表key中的域field的值设置为value,当且仅当域field不存在的时候. 设置成功,返回1。如果已经存在且没有操作被执行,返回0 redis->hsetnx(“user”,”jiang@58haha.cn”,”{‘name’:’jiangzunshao’,’age’:25,’work’:’php’,’city’:’BeiJing’}”); //HGET key field——返回哈希表key中给定域field的值 redis->hget(“user”,”jiang@58haha.cn”); //HMSET key field value [field value …]——同时将多个field-value(域-值)对设置到哈希表 key中 redis->hmset(‘user’,array(‘name’=>’jiangzunshao’, ‘age’ => 20)); //HMGET key field [field …]——返回哈希表 key中,一个或多个给定域的值 redis->hmGet(‘user’, array(‘name’, ‘age’)); //HGETALL key——返回哈希表key中,所有的域和值 redis->hgetall(‘user’); //HDEL key field [field …]——删除哈希表key中的一个或多个指定域,不存在的域将被忽略 redis->hdel(‘user’,’age’); //HLEN key——返回哈希表key中域的数量 redis->hlen(‘user’); //HEXISTS key field——查看哈希表key中,给定域field是否存在,存在返回1,不存在返回0 redis->hexists(‘user’,’jiang@58haha.cn’); //HINCRBY key field increment——为哈希表key中的域field的值加上增量increment,可以为负 redis->hincrby(‘user’,’pv’,5); //HKEYS key——返回哈希表key中的所有域 redis->hkeys(‘user’); //HVALS key——返回哈希表key中所有域的值 redis->hvals(‘user’); /***********List(列表)相关操作**********/ //LPUSH key value [value …]——将数据插入列表的头部 $redis->lpush(‘dbs’,’mongodb-3.2’); //RPUSH key value [value …]——将数据插入列表的尾部 $redis->rpush(‘dbs’,’redis’); //LLEN key——获取列表的长度 redis->llen(‘dbs’); //LPOP key——移除并返回列表的头元素 redis->lpop(‘dbs’); //RPOP key——移除并返回列表的尾元素 redis->rpop(‘dbs’); //LRANGE key start stop——返回列表中指定区间内元素 redis->lrange(‘dbs’,0,$redis->llen(‘dbs’)); redis->lrange(‘dbs’,0,-1); //LSET key index value——将列表下标为index的元素的值设置为value redis->lset(‘dbs’,1,’jiang’); //LTRIM key start stop——列表只保留指定区间内的元素 redis->ltrim(‘dbs’,3,5); //LINDEX key index——返回列表中下标为index的元素 redis->lindex(‘dbs’,$redis->llen(‘dbs’)-1); //LINSERT key BEFORE|AFTER pivot value——将值value插入到列表当中,位于值pivot之前或之后 redis->linsert(‘dbs’,Redis::BEFORE,’mysql’,’mysqlmysql’); redis->linsert(‘dbs’,Redis::AFTER,’redis’,’redisredis’); //RPOPLPUSH source destination——命令RPOPLPUSH在一个原子时间内执行以下两个动作:1,将列表source中的最后一个元素(尾元素)弹出,并返回给客户端;2,将source弹出的元素插入到列表destination,作为destination列表的的头元素 redis->rpoplpush(‘dbs1’,’dbs’); /***********Set(集合)相关操作**********/ //SADD key member [member …]——将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略 redis->sadd(‘set’, ‘xingrongjiang’); //SREM key member [member …]——移除集合key中的一个或多个member元素,不存在的member元素会被忽略 redis->srem(‘set’,’Array’); //SMEMBERS key——返回集合key中的所有成员 redis->smembers(‘set’); //SISMEMBER key member——判断member元素是否集合key的成员 redis->sismember(‘set’,’liyang’); //SCARD key——返回集合key的基数(集合中元素的数量) redis->scard(‘set’); //SMOVE source destination member——将member元素从source集合移动到destination集合 redis->smove(‘set’,’set1’,’xingrongjiang’); //SPOP key——移除并返回集合中的一个随机元素 redis->spop(‘set’); //SRANDMEMBER key [count]——如果只提供了key参数,那么返回集合中的一个随机元素;如果count为正数,且小于集合基数,返回一个包含count个元素的数组,数组中的元素各不相同;如果count大于等于集合基数,返回整个集合;如果count为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为count的绝对值 redis->srandmember(‘set’,2); //SINTER key [key …]——返回一个集合的全部成员,该集合是所有给定集合的交集 redis->sinter(‘set’); //SINTERSTORE destination key [key …]——类似于SINTER命令,它将结果保存到destination集合,而不是简单地返回结果集 redis->sinterstore(‘haha’,’set’); //SUNION key [key …]——返回一个集合的全部成员,该集合是所有给定集合的并集 redis->sunion(‘set’,’set1’); //SUNIONSTORE destination key [key …]——类似于SUNION命令,它将结果保存到destination集合,而不是简单地返回结果集 redis->sunionstore(‘haha1’,’haha’,’set1’); //SDIFF key [key …]——返回一个集合的全部成员,该集合是所有给定集合之间的差集 redis->sdiff(‘set’,’set1’); /******有序集(Sorted set)相关操作*****/ //ZADD key score member——向名称为key的zset中添加元素member,score用于排序,如果该元素已经存在,则根据score更新该元素的顺序 redis->zadd(‘site’, 10, ‘google.com’); redis->zadd(‘site’, 9, ‘baidu.com’); redis->zadd(‘site’, 8, ‘sina.com.cn’); //ZREM key member——删除名称为key的zset中的元素member // redis->zrem(‘site’,’sina.com.cn’); //ZCARD key——返回名称为key的zset的所有元素的个数 redis->zcard(‘site’); //ZCOUNT key min max——返回有序集key中,score值在min和max之间的成员的数量 redis->zcount(‘site’,6,9); //ZSCORE key member——返回有序集key中,成员member的score值 redis->zscore(‘site’,’baidu.com’); //ZINCRBY key increment member——为有序集key的成员member的score值加上增量increment,返回值就是score加上increment的结果 redis->zincrby(‘site’,10,’baidu.com’); //ZRANGE key start stop [WITHSCORES]——返回有序集key中,指定区间内的成员,其中成员的位置按score值递增(从小到大)来排序 redis->zrange(‘site’,0,-1); redis->zrange(‘site’,0,-1,true); //ZREVRANGE key start stop [WITHSCORES]——返回有序集key中,指定区间内的成员,其中成员的位置按score值递减(从大到小)来排列 redis->zrevrange(‘site’,0,-1); redis->zrevrange(‘site’,0,-1,true); /***********Connection(连接)**********/ //AUTH password——密码认证 redis->auth(‘123456’); //PING——查看连接状态 redis->ping(); //SELECT index——切换到指定的数据库,数据库索引号index用数字值指定,以0作为起始索引值,默认使用0号数据库 redis->select(1); /***********Server(服务器)**********/ //TIME——返回当前服务器时间,一个包含两个字符串的列表:第一个字符串是当前时间(以UNIX时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数 redis->time(); //DBSIZE—–返回当前数据库的key的数量 redis->dbsize(); //BGREWRITEAOF——使用aof来进行数据库持久化 redis->bgrewriteaof(); //SAVE——将数据同步保存到磁盘 redis->save(); //BGSAVE——将数据异步保存到磁盘 redis->bgsave(); //LASTSAVE——返回上次成功将数据保存到磁盘的Unix时戳 redis->lastsave(); //SLAVEOF host port——选择从服务器 $redis->slaveof(‘10.0.1.7’, 6379); //FLUSHALL——清空整个Redis服务器的数据(删除所有数据库的所有key) $redis->flushall(); //FLUSHDB——清空当前数据库中的所有key $redis->flushdb(); //INFO [section]——返回关于 Redis 服务器的各种信息和统计数值 redis->info();
相關推薦:
以上是php操作redis的命令分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHPSession失效的原因包括配置錯誤、Cookie問題和Session過期。 1.配置錯誤:檢查並設置正確的session.save_path。 2.Cookie問題:確保Cookie設置正確。 3.Session過期:調整session.gc_maxlifetime值以延長會話時間。

在PHP中調試會話問題的方法包括:1.檢查會話是否正確啟動;2.驗證會話ID的傳遞;3.檢查會話數據的存儲和讀取;4.查看服務器配置。通過輸出會話ID和數據、查看會話文件內容等方法,可以有效診斷和解決會話相關的問題。

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

在PHP中配置會話生命週期可以通過設置session.gc_maxlifetime和session.cookie_lifetime來實現。 1)session.gc_maxlifetime控制服務器端會話數據的存活時間,2)session.cookie_lifetime控制客戶端cookie的生命週期,設置為0時cookie在瀏覽器關閉時過期。

使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 1.持久性:即使服務器重啟,會話數據也能保持不變。 2.可擴展性:適用於分佈式系統,確保會話數據在多服務器間同步。 3.安全性:數據庫提供加密存儲,保護敏感信息。

在PHP中實現自定義會話處理可以通過實現SessionHandlerInterface接口來完成。具體步驟包括:1)創建實現SessionHandlerInterface的類,如CustomSessionHandler;2)重寫接口中的方法(如open,close,read,write,destroy,gc)來定義會話數據的生命週期和存儲方式;3)在PHP腳本中註冊自定義會話處理器並啟動會話。這樣可以將數據存儲在MySQL、Redis等介質中,提升性能、安全性和可擴展性。

SessionID是網絡應用程序中用來跟踪用戶會話狀態的機制。 1.它是一個隨機生成的字符串,用於在用戶與服務器之間的多次交互中保持用戶的身份信息。 2.服務器生成並通過cookie或URL參數發送給客戶端,幫助在用戶的多次請求中識別和關聯這些請求。 3.生成通常使用隨機算法保證唯一性和不可預測性。 4.在實際開發中,可以使用內存數據庫如Redis來存儲session數據,提升性能和安全性。

在無狀態環境如API中管理會話可以通過使用JWT或cookies來實現。 1.JWT適合無狀態和可擴展性,但大數據時體積大。 2.Cookies更傳統且易實現,但需謹慎配置以確保安全性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具