nosql:
1.属性的格式不确定,同一个字段你有时可以存入图片有时却是字符串。所以不要预先定义
2.数据分片存储
redis:
它跟mysql不一样,对于用户来说不再是表一样的结构, 标识符视为钥匙 对应的值视为锁 你只需用标识符去找锁 如同平时中的程序中的变量名对应变量名一样使用
只用关心标识符
标识符的组成 如 第一层:第二层 第一层类似于之前的表明 第二层相当于主键 若只有一个 可省去第二层
本质上类似于键值对的一一对应,但值是下列的数据类型
数据类型:
1.字符串(既可作为键也可作为值)
1.可以原子性增长 被当成数 incr 增加 decr 减少 原子性:所有操作都会执行,读 - 增加 - 写操作在执行时,其他客户端此时不会执行相关命令,执行完后会执行其他客户 端的命令,不会发生竞争
set和get来存取,附加参数:nx表示键存在则set执行失败 xx则无视 ex是设置键的过期时间
mset和mget 一次存取多个数值
对键的操作:
exists:查询键是否存在 del:删除键及其值 type:返回某个键的值的类型 expires:设置键的过期时间 ttl:查询键的生存剩余时间
2.列表(从首尾添加,链表实现)
lpush从左边(头部)添加一个元素到列表 rpush 右边 lrange 提取某一范围的值 ltrim只保留某一范围内的值
rpop从右边弹出元素(即取出,并从列表中删除)
若键对应列表为空会自动删除键,若对不存在的键进行操作是会自动创建空列表然后执行操作
3.集合(没有顺序,每次操作是顺序都是随意的)
sadd 添加元素 smembers 返回集合所有元素 sismember 测试元素是否存在 spop 弹出一个元素(因为是集合相当于随机)
sinter 取交集
sunionstore 把多个集合的交集存到一个集合中去,当只有一个元素是相当于复制
4.哈希
字段值段,即key对应的value也是一个key-value对
hmset和hmget 一次存取多个数值
5.有序集合(以某一元素来排列,虽然每一行唯一,但排序的元素允许重复)
6.位图
redis学习笔记
原文:http://www.cnblogs.com/liuzhugu/p/5158996.html