揭开redis神秘面纱
一直听别人说NoSQL,以前一直不明白,这到底是什么东西,今天听过我们涛哥的讲解,略有小感,特此小记。
NoSQL(NoSQL = Not Only SQL),意为反SQL运动,是一项全新的数据库革命性运动,它指的是非关系型的数据库。比较适用于对数据高并发读写,对海量数据的高效率存储和访问等等。由于学习的redis,因此下面的都是redis的相关知识。
redis也是key-value存储,和memcache很相似,支持的存储类型有字符串,hash,list(链表),set(集合)等等。在此基础上还可以实现master-slave(主从)同步,由此可以实现读写分离。另外一直对论坛或微博的消息推送一直也很感兴趣,今天听闻redis也可以构建实时消息系统,只能感叹的五体投地了。最后我们的涛哥还说可以实现构建队列系统,类似于神奇的12306的抢票,感叹的说不出话来啊!真是神器啊!
另外安装PHP扩展模块,连接redis,实现php和redis的连接。
//php中实现Redis的数据库连接
$redis = new Redis(); //创建redis对象
$redis->connect("localhost");//连接redis数据库
$redis->auth("123456"); //登录密码
随便发了一篇,本人才疏学浅,引来好多朋友的怒火,抱歉,但哥真不想做标题党啊!下面补充下
先说下redis下的常用命令吧
Strings类型
Set
设置key对应的值为string类型的value
例:set name zhangsan
Setnx
设置key对应的值为string类型的value,如果key已经存在,返回0,保证不会覆盖已经存在的值
get
获取设置的key对应的值
例:get name
mset
一次设置多个key的值
mset key1 value1 key2 value2
hashes类型(可以理解为php中的关联数组)
hset hash名 键 值
hset user:001 name zhangsan
hget
获取执行哈希名中的键对应值
hget user:001 name
hgetall
获取指定hash名所有中的键值对
list类型 (双向链表结构)
lpush list1 "world" //在list1头部压入一个字串
lpush list1 "hello" // 在list1头部压入一个字串
lrange list1 0 -1 //获取list1中内容 (-1表示倒数第一个,可以理解为数组的截取)
keys *返回所有键的key