什么是NoSQL?
泛指非关系型的数据库
不支持SQL语法
存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是Key-Value(即键值对关系)形式
NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
NoSQL中的产品种类相当多,Mongodb,Redis,Hbase hadoop,Cassandra hadoop等。
NoSQL和SQL数据库的比较:
适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景,nosql反之
“事务”特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务
两者在不断地取长补短,呈现融合趋势
Redis:
  是一款性能极高的nosql,读写速度非常快,非常适合用来做缓存。它拥有丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
 
数据操作(Ubuntu环境下):
  Redis以key-value形式存储数据,key为字符串 Value: 字符串,hash表,list集合,set集合,zset集合 五种类型。
  字符串类型:
基本键值对: set key value
键值对,有效期: setex key second value
设置多个键值对: mset key1 value1 key2 value2 ..
追加值: append key value
获取值:
1.获取基本值: get key
2.获取多个值: mget key1 key2 ..
查看键:
1.查看所有的键: keys *
2.查看以a开头的键: keys a*
3.看键是否存在: exists key
4.查看键的类型: type key1
删除键值对:
1.删除键: del key1 key2 ..
2.设置键有效期,删除键:expire key seconds
3.查看键的有效期: ttl key
hash类型 增加数据
1.增加域的key和值: hset key field value
2.设置域的多个属性: hmset key filed1 value1 field2 value2…
获取数据:
1.获取域的属性(字段): hget key field
2.获取域的多个属性: hmget key filed1 field2..
3.获取域的所有属性(字段): hkeys key
删除数据:
1.删除多个属性值(字段): hdel key field1 field2…
list类型: 插入数据:
1.左侧插入数据: lpush key value1 value2 …
2.右侧插入数据: rpush key value1 value2 …
3.指定key,旧元素位置前插入元素: 格式:linsert key before oldvalue newvalue
4.指定key,旧元素位置后插入元素: 格式:linsert key after oldvalue newvalue
获取数据:
1.获取从编号start位置到编号stop位置的元素: 格式:lrange key start stop (注意点,最后一个元素可以使用-1表示)
2.设置指定索引位置的元素值: lset key index value
删除数据:
1.将key域列表中,前count次,值为value的元素删除:
格式:lrem key count value
count:需要删除的个数      
value: 需要删除的值    
count>0:从头开始数, count<0从尾到头,count=0查找所有元素
set类型:
特点:无序(顺序)集合, 大小关系有序,不能存储重复元素 1 6 3 9 2
添加元素:
1.向key域(集合)中添加多个数据, sadd key member1 member2...
获取元素:
2.获取key域集合的所有元素: smembers key
删除元素:
1.删除指定key元素的值: srem key value
Zset类型:
  特点: 有序集合, score为权重值 序:自然顺序
增加数据
  1.向key域集合中添加多个score1,member1数据
  格式: zadd key score1 member1 score2 memever2...
获取数据:
  1.返回指定范围内的member元素: 格式:zrange key start stop start:为开始索引,包含 stop:为结尾索引,包含, -1表示最后一个元素
  2.获取min和max权值之间(包含)的成员值: 格式:zrangebyscore key min max
  3.获取key域集合中member的score的权重值: 格式:zscore key member
删除元素:
1.删除域集合中指定的元素值:
   格式:zrem key member1 member2...
2.删除集合中权重在指定范围内(min,max)的元素:
  格式:zremrangebyscore key min max

NOSQL数据库简介的更多相关文章

  1. SnappyDB—Android上的NoSQL数据库简介

    参考:http://www.open-open.com/lib/view/open1420816891937.html 参考:http://android-arsenal.com/details/1/ ...

  2. NoSql数据库简介及Redis学习

    NO-Sql数据库:Not Only不仅仅是SQL 定义:非关系型数据库:NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固 ...

  3. NoSQL数据库--简介

    一.What's NoSQL? NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的.原始的目的是为了大规模we ...

  4. NoSQL数据库简介与产生

    关系型数据库所存在“问题” >利用ACID原则(原子性,一致性,隔离性,持久性)保证数据完整性: >行列的规范化存储: >预定义结构: >存储数据量“小”: >结构化查询 ...

  5. NoSql数据库Redis系列(1)——Redis简介

    一.redis介绍 (一).Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点 ...

  6. NoSql数据库MongoDB系列(1)——MongoDB简介

    一.NoSQL简介    NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 .是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.No ...

  7. 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复

    目录 一. CouchBase概述 1.1.简述 1.2.CouchDB和CouchBase比对 1.2.1.CouchDB和CouchBase的相同之处 1.2.2.CouchDB和CouchBas ...

  8. NoSQL数据库笔谈(转)

    NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...

  9. MongoDB数据库简介及安装

    一.MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自"humongous",是一种开源 ...

随机推荐

  1. 一个unsigned int 数的二进制表示中有多少个1

    这是一道面试题可以用以下的一些方案.第一种是很容易想到的采用循环的方式并且与1进行位与运算,具体代码如下.  1unsigned int GetBitNumOfOne_ByLoop1(unsigned ...

  2. STM32 MDK摘记

    题记:这人是越懒越懒,记性也也来越差,前段时间改了个链接文件,今天想用,竟然忘了咋写....还是勤记记吧... 随时更新,笔记帖. 不喜勿喷! 1,关于MDK链接文件宏的定义 #! armcc -E ...

  3. LeetCode 515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)

    515. 在每个树行中找最大值 515. Find Largest Value in Each Tree Row 题目描述 You need to find the largest value in ...

  4. git的快速入门

    Git是目前世界上最先进的分布式版本控制系统(注意,仅仅是一个程序,而不是正真意义上的系统). Why为什么需要版本控制? 场景1:大学毕业前夕,你在完成毕业论文,初稿A写好了,找老师修改,老师提出意 ...

  5. Java 发送http GET/POST请求

    最近项目里面需要用到Java发送http请求,由于发送https请求有点复杂,暂时不考虑 HttpURLConnection HttpURLConnection是一种多用途.轻量极的HTTP客户端,使 ...

  6. python 之 前端开发(盒子模型、页面布局、浮动、定位、z-index、overflow溢出)

    11.312 盒子模型 HTML文档中的每个元素都被比喻成矩形盒子, 盒子模型通过四个边界来描述:margin(外边距),border(边框),padding(内填充),content(内容区域),如 ...

  7. PAT(B) 1051 复数乘法(Java)

    题目链接:1051 复数乘法 (15 point(s)) 参考博客:1051 复数乘法(PAT 乙级 C++实现)-guangjinzheng 题目描述 复数可以写成 (A+Bi) 的常规形式,其中 ...

  8. Vue.js 2.x API 知识梳理(一) 全局配置

    Vue.js 2.x API 知识梳理(一) 全局配置 Vue.config是一个对象,包含Vue的全局配置.可以在启动应用之前修改指定属性. 这里不是指的@vue/cli的vue.config.js ...

  9. Ubuntu 利用 mtd-utils 制作ubifs.img

    确保已经安装了有关的工具 sudo apt-get install mtd-utils mkfs.ubifs -d fs -m -o rootfslink.ubiimg -e -c -F -v syn ...

  10. Linux追加磁盘扩展

    一:查看磁盘空间信息: fdisk -l 查看当前的系统的磁盘空间的情况: 二:增加分区: fdisk /dev/sda 键入n,增加一个分区,得到: 键入 p,主分区,并键入3(编号): 默认起始扇 ...