php实例 php语言入门

Redis是用ANSI C语言编写的开源键值数据库,支持网络,可以基于内存,可以持久化,提供多种语言的API。Redis支持的数据类型有字符串(String)、列表(List)、哈希(dictionary)、集合(Set)、有序集(ordered Set);Redis默认端口6379。

【点击领取】150粉丝福利,免费获取PHP进阶架构资料

联系

$ Redis = new Redis();//实例化$ redis-& gt;连接(& # 39;127.0.0.1', 6379);//connect $ redis-& gt;auth(& # 39;Redis密码& # 39;);//没有密码的redis可以忽略这个步骤2。数据类型2-1 string string//存储或更改$ redis-& gt;设置(& # 39;测试& # 39;, 'aaa & # 39);//获取值$ redis-& gt;获取(& # 39;测试& # 39;);// aaa2-2列表列表

方法中的l表示列表操作存储。

$ redis-& gt;lpush(& # 39;列表& # 39;, '一& # 39;);//添加$ redis-& gt;lpush(& # 39;列表& # 39;, 'b & # 39);$ redis-& gt;lpush(& # 39;列表& # 39;, 'c & # 39);$ redis-& gt;rpush(& # 39;列表& # 39;, 'd & # 39);//添加$ redis-& gt;lset(& # 39;列表& # 39;, 2, 'e & # 39);//设置或更改列表中指定位置的值,成功返回1,失败删除错误信息。

$ redis-& gt;lpop(& # 39;列表& # 39;);//删除左边第一个$ redis-> rpop(& # 39;列表& # 39;);//删除右边第一个//$ redis-& gt;lrem(& # 39;列表名称& # 39;, '价值& # 39;,num);//根据值删除元素。第二个参数是要删除的值(具有该值的元素将被删除)。//第三个参数num表示删除的位置和数量。//num & gt;从页眉到页脚删除0,删除num。//num & lt;0从页脚删除到页眉,删除|num|个项目;//num=0将表格中的所有值作为& # 39;b & # 39元素$ redis-& gt;lrem(& # 39;列表& # 39;, 'b & # 39, 2);

获取并返回一个数组。

$ redis-& gt;lrange(& # 39;列表& # 39;, 0, -1);//返回一个数组。存储在键中的列表指定了元素的范围。//第一个参数是列表名//第二个参数是起始位下标,//第三个参数是结束位下标(包括结束位元素)。//负数代表倒数,-1代表最后一位;//如果开始大于结束,则返回空;如果结尾大于实际长度,则返回到最后一个元素。$ redis-& gt;lgetrange(& # 39;列表& # 39;, 0, 2);//获取列表中指定区间的值,如上$ redis-& gt;ltrim(& # 39;列表& # 39;, 0, 3);//截取并保留列表指定区间内的值,删除剩余的值。//成功返回1,失败返回错误信息。负数表示倒数$ redis-& gt;lsize(& # 39;列表& # 39;);//获取列表的长度$ redis-& gt;lget(& # 39;列表& # 39;,2) //获取值$ redis-& gt;lindex(& # 39;列表& # 39;, 2);//获取list 2-3哈希字典中指定位置的值。

字符串类型的字段和值的映射表,特别适合存储对象。每个hash可以存储2-1键值对的32次方(超过40亿)。哈希表相当于redis存储key = >;key in value,表内容相当于H代表哈希运算存储的value方法。

//$ redis-& gt;hset(& # 39;哈希表& # 39;,键,值);//如果哈希表不存在,创建一个哈希表;如果键不存在,则设置成功,返回true//如果存在,则替换原值,返回false如果失败,将返回false //第一个参数是字典名$ redis-& gt;hset(& # 39;hashtest & # 39, '一& # 39;, 'aaa & # 39);//返回true $ redis-& gt;hset(& # 39;hashtest & # 39, '一& # 39;, 'bbb & # 39);//返回false,a的值改为BBB $ redis-& gt;hset(& # 39;hashtest & # 39, 'b & # 39, 'bbb & # 39);//返回true,加b,值为bb $ redis-& gt;hmset(& # 39;hashtest & # 39,[1 = & gt;1,2 = >2,3 = >3]);//批量赋值,$ redis-& gt;hincrby(& # 39;hashtest & # 39, '1', 1);//哈希表中键对应的值增加1(整数),//第一个参数字典名//第二个参数是键名,//第三个参数是自增幅度。如果表中不存在该键,将自动添加该键,并将值设置为$ redis-& gt;hincrbyfloat(& # 39;hashtest & # 39, '2', 1.5);//哈希表中的自增键获取

$ redis-& gt;hget(& # 39;哈希表& # 39;,键);//获取某个键对应的值$ redis–>;hget(& # 39;hashtest & # 39, '一& # 39;);//获取hashtest $ redis–>中a的值;hkeys(& # 39;hashtest & # 39);//获取哈希表中的所有键(键名)并返回数组$ redis->;hvals(& # 39;hashtest & # 39);//随机获取哈希表中的所有值(values),返回一个数组$ redis->;h金属(& # 39;hashtest & # 39);//随机获取哈希表中的所有键值对,返回数组$ redis-& gt;hlen(& # 39;hashtest & # 39);//获取哈希表$ redis–>中的键数;hm get(& # 39;hashtest & # 39, [1, 2, 3]);//批量获取多个键对应的值,第二个参数是key arr $ redis-& gt;hex ists(& # 39;hashtest & # 39, 'b & # 39);//判断哈希表中是否存在键删除。

$ redis-& gt;hdel(& # 39;hashtest & # 39, '一& # 39;);//删除哈希表中的一个键,成功返回true。//如果表不存在或者键不存在,则返回false2-4集合的集合。

Redis集是String类型的无序集合。集合成员是唯一的,这意味着重复数据不能出现在集合中。一个集合中的最大成员数是2的32-1次方(4294967295,每个集合可以存储超过40亿个成员)。方法中的s代表集合运算加法。

//$ redis-& gt;sadd(& # 39;Set set & # 39, '价值& # 39;);//给settest加一个值,成功则返回加的数,失败则返回0。//第一个参数是集合集合名称//第二个参数是在集合中插入一个新值,即在值中插入一个新值$ redis–>;sadd(& # 39;settest & # 39, '一& # 39;);//1 $ redis-& gt;sadd(& # 39;settest & # 39, 'b & # 39);//1 $ redis-& gt;sadd(& # 39;settest & # 39, '一& # 39;);//0 $ redis-& gt;sadd(& # 39;settest & # 39, ['c & # 39, 'd & # 39, 'e & # 39]);//一次添加多个值采集。

$ redis-& gt;s members(& # 39;settest & # 39);//获取集合$ redis–>中的所有元素;sis member(& # 39;settest & # 39, 'b & # 39);//确定该元素是否为集合成员$ redis->;scard(& # 39;settest & # 39);//查看集合$ redis–>中元素的数量;烧结(& # 39;settest & # 39, 'settest2 & # 39);//返回两个集合的交集$ redis->;sinter store(& # 39;settest3 & # 39, 'settest & # 39, 'settest2 & # 39);//将settest和settest2的交集放入set test 3 $ redis->;sunion(& # 39;settest & # 39, 'settest2 & # 39);//返回两个集合的并集$ redis->;sunion store(& # 39;settest4 & # 39, 'settest & # 39, 'settest2 & # 39);//将settest和settest2的并集放入set test 4 $ redis->;sdiff(& # 39;settest & # 39, 'settest2 & # 39);//返回两个集合的差集$ redis->;sdiffstore(& # 39;settest5 & # 39, 'settest & # 39, 'settest2 & # 39);//将settest和settest2的差集放入set settest5。

删除

$ redis-& gt;srem(& # 39;settest & # 39, '一& # 39;);//删除集合中的值,$ redis-& gt;srem(& # 39;settest & # 39, '一& # 39;, 'b & # 39);//删除多个值$ redis-& gt;spop(& # 39;settest & # 39);//从集合中移除随机元素并返回它。

2-5.有序集

Redis有序集和set一样,是string类型元素的集合,不允许有重复成员。

不同之处在于,每个元素都与一个double类型的分数相关联。Redis通过分数将集合成员从小到大排序。

有序集的成员是唯一的,但是分数可以重复。

一个集合中的最大成员数是2的32-1次方(4294967295,每个集合可以存储超过40亿个成员)。

方法中的z代表有序集合运算。

添加或更新

//$ redis-& gt;扎德(& # 39;有序集合名称& # 39;,分数,数值);//有序集ztest中的一个值。小数值可以是整数值或双精度浮点数。//执行zadd时,如果不存在,新建一个有序集合;//如果ztest存在,但不是有序集类型,则返回错误。$ redis-& gt;扎德(& # 39;ztest & # 39, 1, '一& # 39;);$ redis-& gt;扎德(& # 39;ztest & # 39, 2, '一& # 39;);//当一个元素存在时,更新这个元素的分数并重新插入,以确保这个元素在正确的位置。//但不包括新添加的$ redis-& gt;扎德(& # 39;ztest & # 39,得分1,值1,得分2,值2);//将多个值$ redis->插入有序集;扎德(& # 39;ztest & # 39, 2, 'b & # 39, 3, 'c & # 39, 4, 'd & # 39);$ redis-& gt;zincrby(& # 39;设置& # 39;, 2, 'c & # 39);//指定的值c增加2来获得。

//$ redis-& gt;z range(& # 39;z集& # 39;起始位、结束位、布尔值);//获取指定区间的有序集。返回一个数组。分数从小到大。//第一个参数:有序集名称//第二个参数:起始位置,//第三个参数:结束位置(包括本位置),负数代表倒数第二个。//第四个参数:可选参数,布尔值,有无分数,默认为false $ redis-& gt;z range(& # 39;ztest & # 39, 0, 1);// ['一& # 39;, 'b & # 39]按分数排序,但不含分数$ redis-& gt;z range(& # 39;ztest & # 39,0,1,真);// ['一& # 39;= & gt2, 'b & # 39= & gt2]按分数排序,并携带分数[& # 39;元素& # 39;= & gt'得分& # 39;]$ redis-& gt;zrevrange(& # 39;zset & # 39, 1, 2);//获取指定区间的有序集。返回一个数组。分数从大到小。$ redis-& gt;zscore(& # 39;ztest & # 39, '一& # 39;);//获取指定元素的分数$ redis-& gt;zcard(& # 39;zset & # 39);//获取存储元素的数目$ redis-& gt;zcount(& # 39;zset & # 39, 2, 5);//得分在2到5 $ redis–>之间的元素个数;zrangebyscore(& # 39;zset & # 39, 2, 3);//返回分数在2到3之间的元素,不带分数,显示方式和z range $ redis-& gt;zrangebyscore(& # 39;zset & # 39, 2, 3, ['withscores & # 39= & gt真]);//返回分数在2到3之间的元素,用分数显示,和在zrange中删除是一样的。

$ redis-& gt;zrem(& # 39;zset & # 39, 'c & # 39);//删除指定的成员$ redis-& gt;zremrangebyscore(& # 39;设置& # 39;, 2, 3);//删除分数在2到3之间的元素,返回删除元素的个数。

3. 其他常用方法3-1 查找相关key

//根据条件查找对应的键,支持字符串拼接(返回值为数组,即使没有找到数据也会返回空 array)//*代表任意长度的任意字符。任何长度为$redis->按键(& # 39;一& # 39;);//找到$ redis->等于A的键;按键(& # 39;a* & # 39;);//查找以a开头,后跟任意值的键,$ redis-& gt;按键(& # 39;* b * & # 39);//找到链接中间包含b的关键字$ redis–>按键(& # 39;c??');//找到长度为3,第一个字符为c的key $ a = a$ redis-& gt;钥匙($ a . & # 39*');//使用key后,可以使用for循环加get()来获取相关key的对应值。3-2到期时间查看到期时间/$ redis-> TTL(& # 39;键名& # 39;);//查看一个密钥有效期的剩余时间,返回秒数。//没有过期时间时,返回:-1;//没有该键值时,返回-2;$ redis-& gt;TTL(& # 39;ttltest & # 39);//查看ttltest的剩余到期时间,并设置到期时间。

redis::expire(& # 39;key & # 39,第二);//多少秒后过期Redis::Expirat(& # 39;key & # 39,times temp);//当某个时间戳(秒)到期时,以上是PHP使用Redis实例讲解的详细内容。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论