揭开redis神秘面纱

时间:2023-12-22 10:28:56

一直听别人说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