什么是nosql?
nosql[not only sql]不仅仅是SQL,所有非关系型数据库的统称。
nosql和BDMS的区别:
什么是redis?
redis
redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和信息代理。redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。redis具有内置的复制,lua脚本,lru驱逐,事务和不同级别的磁盘持久性,并通过redis sentinel和redis cluster自动分区提供了高可用性。
redis是免费的软件,它可以用作数据,缓存,信息代理。而且里面可以存储多种数据类型,并且提高了高可用机制。
redis优点:
redis读取的速度是110000次/s,写的速度是81000/s。
原子:redis的所有操作都是原子性的,同时redis还支持对几个操作全并后的原子性型。
支持多种数据结构:string(字符串);list(列表);hash(哈希);set(集合);zset(有序集合)
持久性:磁盘,主从复制(集群)
使用redis:
使用key操作的命令:
set key value:设置key和值
keys *:获取所有的key
del key:删除指定的key
expire key second:为指定的key设置过期时间-毫秒
exists key:判断指定的key是否存在数据库的命令
select n:选择库
flushdb:清空当前所在的库
flushall:清空所有库
redis支持的数据类型
redis
使用最频繁的string字符串,list队列,Hash哈希,set集合,zset有序集合字符串类型
表示里面的value的类型为字符串类型,默认可以存放512M大小的字符串内容
set key value:存放字符串类型的数据
get key:获取指定key对应的value值
setex key second value:存放字符串类型的数据并设置过期时间
setnx key value:如果指定的key存在,则不设置,不存在则放入
incr key:为指定的key递增-int类型
decr key:为指定的key递减-int类型Hash类型
表示value值为hash数据类型,表示value又是key-value形式
hset key filed value:存放hash类型的数据
hget key filed:获取存储在哈希表中指定字段的值
hgetall key:获取哈希表中指定key中所有字段和值
hkeys key:获取所有哈希表中的字段
hvals key:获取所有哈希表中值
hexists key filed:查询哈希表中key,指定的字段是否存在list类型
list表示列表类型,表示value的值为list类型
lpush key value value …:将一个或多个值插入到列表的头部
lrange key start end:获取列表指定范围内的元素
linsert key before|after element value:在列表旧元素前或后插入新元素
lpop key:移除并获取列表中的第一个元素
lset key index value:修改指定下标的值set集合类型
特点:无须不可重复
sadd key element element …:添加元素
smembers key:获取集合中所有的元素
srem key:移除一个多个元素
sinter 1key 2key …:获取给定(1key 2ley)所有集合的交集zset集合类型
特点:有序但不重复。有序是和score有关
zadd key score value score value …:向有序集合添加一个或多个元素,或者更新已存在成员的分数
zrange key start end:返回有序集合指定区间内的成员,通过索引,分数从高到低