进入九月,学习内容进一步加深,要进一步加强框架的学习,还有诸如Redis和Elasticsearch之类的,之后可能就得做东西了。
今天看了一下Redis的相关知识,感觉就是个能放数据的碗,学了半天就是会了个怎么放,怎么取,没了。其他的知识感觉不出有什么用,估计这东西的作用只有在项目中才能体现吧。
简介
Redis是一个非关系型数据库,在处理字符串、散列、集合、有序集合和列表等数据结构方面效果优越,它速度块的同时还可以将内容固定在磁盘中,保证持久化。它的每个操作都是原子化操作,保证不会发生进行到一半的情况。所以个人看了它的事务部分感觉不明所以,失去了原子性的事务有什么用呢?疑惑。
五种数据类型
感觉用的最多的还是字符串、列表、散列、集合和有序集合。每一类都有一堆命令,看了半天就记住了插入数据和输出数据,其他的抽时间慢慢用吧。
字符串
说是字符串实际上指的是键值对,因为是二进制安全的,所以放图片这一类的也可以,况且最大可以放512MB的内容,所以还真的可以放字符之外的二进制数据。
SET 键名 值
GET 键名
散列
其实是一张映射表,存放了一堆键值对,很像面向对象的实例。
HMSET 表名 属性名1 属性值1 属性名2 属性值2
HGET 表名 属性名
列表
一个表,里面一堆值,按照推入的顺序来排序,最后推入的最先输出。下标就是从0开始的数字。
LPUSH 表名 值1
LPUSH 表名 值2
...
LRANGE 表名 起始下标 结束下标
集合
集合的特点就是无序,所以塞就完事了。
SADD 集合名 值1
SADD 集合名 值2
...
SMEMBERS 集合名
有序集合
相比集合多了个序号,输进去的时候直接按照这个序号的大小排序了。
ZADD 集合名 序号 值
...
ZRANGEBYSCORE 集合名 最小序号 最大序号
补充
DEL 可以删除对应键名的结构,EXISTS 可以判断对应键名的结构是否存在,TYPE 可以返回对应键名的结构的类型。
其他
订阅看了,说实话不知道有什么用,我就打开了四个命令框,两个SUBSCRIBE一个channel,另外两个在这个channel上面PUBLISH消息,然后订阅的就都能看到发送的消息,很有聊天的感觉,但是有什么用呢?
脚本也很迷,EVAL 后面引号写Lua脚本,但是很怪,引号里边写语句,后面还要标上有几个key,还有arg之类的,搞不懂什么作用。
事务也说了,没有原子性的事务有什么用?
其他的性能测试客户端连接感觉暂时用不上,我先放放,之后肯定会继续补充内容的嘛。