本文举例说明了PHP Redis开发的书签案例。分享给大家参考,如下:
Redis是一个键值存储系统。与Memcached类似,它支持相对大量的存储值类型,包括字符串、列表、集合、zset和hash。这些数据类型都支持push/pop、add/remove、交集并集和差集以及更丰富的操作,这些操作都是原子的。在此基础上,redis支持多种排序方式。像memcached一样,为了提高效率,数据被缓存在内存中。不同的是redis会定期将更新后的数据写入磁盘或对额外的记录文件进行修改操作,并在此基础上实现主从同步。
事件
在项目开发的过程中,相信大家都遇到过这样的场景:——一个书表,一个书标签表,然后一本书可以有多个标签,类似于CSDN发表文章时的文章标签。
问题:如果要查询有多个共同标签的图书,必须关联要查询的表,影响效率。我们可以用redis来帮助。
案例思路
添加图书时,需要添加图书和标签,在MySQL中保存图书,在redis的set set集合中保存标签,将每个标签当作一个集合集合,然后将图书的id信息保存在每个标签中。如果需要查询有多个共同标签的图书,只需要相交多个集合即可。
结果图
项目图
Index.html文件
此页面用于添加书籍。
!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN ' ' http://www . w3 . org/TR/XHTML L1/DTD/XHTML L1-Strict . DTD ' html xmlns=' http://www . w3 . org/1999/XHTML ' XML : lang=' EN ' head meta http-equiv=' Content-Type ' Content=' text/html;charset=utf-8 ' title document/title/head body formaction=' add . PHP ' method=' post ' P请输入一本书的标题:输入类型=' text ' name=' title '/P请输入一个标记:输入类型=' text ' name=' tags '/P pin put type=' submit ' value=' submit '/P/form/body/html add . PHP文件
这个文件主要处理添加书籍。
首先,教师为图书的id生成一个自生长的id,然后将标签信息添加到redis中,最后使用pdo将图书信息添加到数据库中。
?PHP $ Redis=new Redis();$redis-connect('localhost ',6379);//id$bid=$redis-incr('bid ')由增长产生;//将标记信息添加到redis $ tags=explode(',',trim ($ _ post ['tags'],','));foreach($标签为$t){ $redis-sAdd($t,$ bid);}//使用pdo将图书信息添加到数据库$ DSN=' MySQL : host=localhost;dbname=test ';$pdo=新PDO(DSN,' root ',' 1234 ');$ PDO-query(' set name utf8 ');$sql='插入账面价值(?)';$ ST=$ PDO-prepare($ SQL);$line=$st-execute([$bid,$ _ POST[' title ']]);if($line!=0){ echo' book添加成功;}search.php文件
这个文件主要处理搜索界面,也就是上面渲染的界面。首先创建并连接一个redis对象,然后获取地址栏的标签,然后将标签转换成数组,计算用户输入的标签数。因为每个标签对应于redis中的一个集合,所以取这些集合的交集就足够了。
?PHP $ Redis=new Redis();$redis-connect('localhost ',6379);$tags=explode(',',trim($_GET['tags'],','));$ len=count($ tags);if($ len==1){ var _ dump($ redis-sMembers($ tags[0]);} else if($ len==2){ var _ dump($ redis-Sint($ tags[0],$ tags[1]);} else if($ len==3){ var _ dump($ redis-Sint($ tags[0],$tags[1],$ tags[2]);}更多对PHP相关内容感兴趣的读者可以查看本网站专题:《php+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》、《php常见数据库操作技巧汇总》、0103010。
希望本文对PHP编程有所帮助。