简介
* NoSQL,全名为Not Only SQL,指的是非关系型的数据库
* 随着访问量的上升,网站的数据库性能出现了问题,于是nosql被设计出来
优点
* 高可扩展性
* 低成本
* 架构的灵活性,半结构化数据
* 分布式计算
* 没有复杂的关系
缺点
* 没有标准化
* 最终一致是不直观的程序
* 有限的查询功能(到目前为止)
类型
列存储
文档存储
key-value存储
图存储
对象存储
xml数据库
nosql--redis安装
安装
https://redisdesktop.com/
下载
http://download.redis.io/releases/redis-4.0.9.tar.gz
推荐放到usr/local目录下
sudo mv redis-4.0.9/ /usr/local/redis/
进入redis目录
cd /usr/local/redis/redis-4.0.9
如果没有就进入cd /usr/local/redis/
生成
sudo make
测试
sudo make test
安装
sudo make install
运行
启动服务器:在桌面目录
redis-server
按ctrl+c停止
启动客户端:在新终端中运行
redis-cli
运行命令
ping
数据操作
键的类型是字符串
键的命令
查找键,参数支持正则
KEYS pattern
keys *
判断键是否存在,如果存在返回1,不存在返回0
EXISTS key [key ...]
查看键对应的value的类型
TYPE key
删除键及对应的值
DEL key [key ...]
设置过期时间,以秒为单位
创建时没有设置过期时间则一直存在,直到使用使用DEL移除
EXPIRE key seconds
查看有效时间,以秒为单位
TTL key
值的类型分为五种
字符串string
设置
设置键值
set key value
设置键值及过期时间,以秒为单位
SETEX key seconds value
设置多个键值
MSET key value [key value ...]
获取
根据键获取值,如果不存在此键则返回nil
GET key
根据多个键获取多个值
MGET key [key ...]
运算
要求:值是数字
将key对应的value加1
INCR key
将key对应的value加整数
INCRBY key increment
将key对应的value减1
DECR key
将key对应的value减整数
DECRBY key decrement
其他
追加值
APPEND key value
获取值长度
STRLEN key
* 哈希hash
hash用于存储对象,对象的格式为键值对
设置
设置单个属性
HSET key field value
设置多个属性
HMSET key field value [field value ...]
获取
获取一个属性的值
HGET key field
获取多个属性的值
HMGET key field [field ...]
获取所有属性和值
HGETALL key
获取所有的属性
HKEYS key
返回包含属性的个数
HLEN key
获取所有值
HVALS key
其它
判断属性是否存在
HEXISTS key field
删除属性及值
HDEL key field [field ...]
返回值的字符串长度
HSTRLEN key field
* 列表list
设置
在头部插入数据
LPUSH key value [value ...]
在尾部插入数据
RPUSH key value [value ...]
在一个元素的前|后插入新元素
LINSERT key BEFORE|AFTER pivot value
索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LSET key index value
获取
移除并且返回 key 对应的 list 的第一个元素
LPOP key
移除并返回存于 key 的 list 的最后一个元素
RPOP key
偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LRANGE key start stop
其它
偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LTRIM key start stop
返回存储在 key 里的list的长度
LLEN key
返回列表里索引对应的元素
LINDEX key index
* 集合set
特点
* 无序集合
* 元素为string类型
* 元素具有唯一性,不重复
设置
添加元素
SADD key member [member ...]
获取
返回key集合所有的元素
SMEMBERS key
返回集合元素个数
SCARD key
其他
求多个集合的交集
SINTER key [key ...]
求某集合与其它集合的差集
SDIFF key [key ...]
求多个集合的合集
SUNION key [key ...]
判断元素是否在集合中
SISMEMBER key member
有序集合zset
特点
* sorted set,有序集合
* 元素为string类型
* 元素具有唯一性,不重复
* 每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
* 元素的score可以相同
设置
添加
ZADD key score member [score member ...]
获取
返回指定范围内的元素
ZRANGE key start stop
返回元素个数
ZCARD key
返回有序集key中,score值在min和max之间的成员个数
ZCOUNT key min max
返回有序集key中,成员member的score值
ZSCORE key member
网友评论