Redis——NOSQL、Redis概述、Redis数据类型、通用命令

NOSQL概述

*NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。
*随着互联网web2.0网站(动态网站)的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200418003815307-1659544396.png)

NOSQL的优缺点

*优点:
    *成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。
    *查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。
    *存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
    *扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。
*缺点:
    *维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。
    *不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本。
    *不提供关系型数据库对事务的处理。

非关系型数据库的优势

     *复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
     *事务支持使得对于安全性能很高的数据访问要求得以实现。对于这两类数据库,对方的优势就是自己的弱势,反之亦然。

总结

    *关系型数据库与NoSQL数据库并非对立而是互补的关系,即通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库,让NoSQL数据库对关系型数据库的不足进行弥补。

Reids概述

    1.概述:Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,redis就是在内存中的一个大的Map集合,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,
    且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis主要支持的键值数据类型如下:key为字符串类型, value为任意类型;
    2.分类
        *字符串类型:String 
            Map<String,String>
            *set key value 设置键值对
            *get key value 获取键值对
            *del key value 删除键值对
        *散列类型 hash
            Map<String,map<String,String>>
            *hset key filed value 设置map的键值对
            *hget key filed value 获取指定map的键值对
            *hgetall key filed values 获取所有的map的键值对
            *hel key filed value 删除指定的map集合的键值对
        *列表类型 list
            Map<String,list<String>>
            *lpush key value 将元素添加到列表的最左边
            *rpush key value 将元素添加到列表的最右边
            *lrange key start end 获取指定范围内的元素
            *lpop key value 将最左边的元素删除,并返回
            *rpop key value 将最右边的元素删除,并返回
        *集合类型 set
            Set<String,set<String>>
            *sadd key value 设置set集合的元素值
            *srange key start end 获取指定范围的元素
            *srem key value 删除指定的set集合
        *有序集合类型 sortedset
            Map<String,sortedset<String>>
            *zadd key score value 添加一个有索引的元素
            *zrem key value 删除指定的元素
            *zrange key start end witeh score 获取指定范围的元素和其索引

Redis的通用命令

*keys pattern(格式)
获取所有与pattern匹配的key,返回所有与该key匹配的keys。*表示任意一个或多个字符,?表示任意一个字符

*exists key
判断该key是否存在,1代表存在,0代表不存在

*type key
获取指定key的类型。该命令将以字符串的格式返回。 返回的字符串为string、list、set、hash,如果key不存在返回none
        
expire key time(时间)
设置key的存活时间
posted @ 2020-04-18 18:32  林jj  阅读(111)  评论(0编辑  收藏  举报