什么是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之redis用法的更多相关文章

  1. 【NoSql】Redis

    [NoSql]Redis 一. 文档 1. 官网 2. Windows 安装包 3. C# Driver a. ServiceStack.Redis 最新版本是收费的 b. StackExchange ...

  2. NoSQL之Redis高级实用命令详解--安全和主从复制

    Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim ...

  3. NoSQL:redis缓存数据库

    一 Redis介绍 Redis和Memcached类似,也属于key-value nosql 数据库 Redis官网redis.io, 当前最新稳定版4.0.1 和Memcached类似,它支持存储的 ...

  4. [转]使用python来操作redis用法详解

    转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...

  5. python操作redis用法详解

    python操作redis用法详解 转载地址 1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用 ...

  6. No-sql之redis常用命令

    转自:http://blog.csdn.net/nicewuranran/article/details/51793760 No-SQL之Redis 介绍 Redis是一种基于内存存储的key-val ...

  7. NoSQL之Redis学习笔记

    一.NoSQL与Redis 1.什么是NoSQL? NoSQL=Not Only SQL ,泛指非关系型数据库.随着互联网的兴起,传统的关系型数据库已经暴露了很多问题,NoSQL数据库的产生就是为了解 ...

  8. 【一个idea】YesSql,一种在经典nosql数据库redis上实现SQL引擎的方案(我就要开历史的倒车)

    公众号链接 最高级的红酒,一定要掺上雪碧才好喝. 基于这样的品味,我设计出了一套在经典nosql数据库redis上实现SQL引擎的方法.既然redis号称nosql,而我偏要把SQL加到redis上, ...

  9. NoSQL 之Redis的5大数据类型

    NoSQL 之Redis的5大数据类型 Redis的五大数据类型也称五大数据对象:了解过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisO ...

随机推荐

  1. Github使用教程图文详解

    最近几天发现有些人对Github网站很好奇,但是无奈自己不会用,因为是外国人的网站,首先自己的英文就不过关.对于这个,其实可以用谷歌浏览器去浏览Github,它有一键翻译的功能.但还是有必要介绍一下关 ...

  2. Struts2 运行流程

    Struts2运行流程 1.在web.xml中使用Struts的核心过滤器拦截所有请求. <filter> <filter-name>struts2</filter-na ...

  3. SqlServer数据库之给表添加序号

    简单给查询表添加序号 SELECT row_number() over(order by inserttime asc) as id,* FROM [RecordDrawScore]

  4. day08 作业

    1. 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中 即: {'k1' ...

  5. 2.2 Scala基础知识

    一.基本数据类型和变量 1.基本数据类型 java中每一个数据类型都是一个类: scala没有自己定义String类型,String类型是从java.lang.String照搬的. 字面量(liter ...

  6. NLP中的预训练语言模型(二)—— Facebook的SpanBERT和RoBERTa

    本篇带来Facebook的提出的两个预训练模型——SpanBERT和RoBERTa. 一,SpanBERT 论文:SpanBERT: Improving Pre-training by Represe ...

  7. Rust中的控制结构

    fn main() { let number = ; { println!("condition was true"); } else { println!("condi ...

  8. glog的编译和使用

    glog是google提供的一个轻量级日志库,有chromium开发经验的人都会发现,它和base库中的日志库非常像,其实base库中的日志库比它更加轻量级.glog在日常开发中的使用非常广泛.这里介 ...

  9. 解决IIS7、IIS7.5 应用程序池回收假死的方法

    最近iis网站一直假死状态,都懵了,查看程序有没有关闭数据库,反复捣鼓,还一直测试是否是程序应用池自动回收问题依然没有效果.经过老师提醒,找到了解决办法,在此做个笔记! 原因在于:应用程序池超时配置被 ...

  10. springboot整合邮件

    一.邮件相关知识补充 SMTP(Simple Mail Transfer Protocol) 即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属 ...