什么是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. 章节十四、3-执行JavaScript命令

    一.网页页面都是由html+css和javaScript组成的,如果页面中没有javaScript的存在,就不会有操作动作的执行,例如页面上你点击的按钮或者链接都离不开javaScript.(这一节不 ...

  2. Fundebug 微信小游戏异常监控插件更新至 0.5.0,支持监控 HTTP 慢请求

    摘要: 支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug是专业微信小游戏 BUG 监控服务,可以第一时间捕获线上环境中小游戏的异常.错误或者 BUG, ...

  3. Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识

    摘要: 详解原型污染. 原文:Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识 作者:Lucas HC Fundebug经授权转载,版权归原作者所有. 可能有信息敏感的同学已 ...

  4. 如何使用 Set 来提高JS代码的性能

    摘要: 高效使用Set! 作者:前端小智 原文:如何使用 Set 来提高代码的性能 Fundebug经授权转载,版权归原作者所有. 为了保证的可读性,本文采用意译而非直译. 我确信有很多开发人员坚持使 ...

  5. Django框架 --序列化组件(serializer)

    一 .Django自带序列化组件 Django内置的serializers(把对象序列化成json字符串) from django.core import serializers from djang ...

  6. UVa 202 Repeating Decimals 题解

    The decimal expansion of the fraction 1/33 is 0.03, where the 03 is used to indicate that the cycle ...

  7. Appium基础:appium相关API

    1.获取信息类: 1.1 获取当前界面的组件: driver.currentActivity(); //获取当前界面的activity,可用于断言是否跳转到预期的activity 1.2 获取当前页面 ...

  8. tar命令-解压和压缩文件

    tar命令 可以用来压缩打包单文件.多个文件.单个目录.多个目录. Linux打包命令_tar tar命令可以用来压缩打包单文件.多个文件.单个目录.多个目录. 常用格式: 单个文件压缩打包 tar ...

  9. Tkinter 鼠标键盘事件(二)

    一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑 ...

  10. 请求与上传文件,Session简介,Restful API,Nodemon

    作者 | Jeskson 来源 | 达达前端小酒馆 请求与上传文件 GET请求和POST请求 const express = require('express'); const app = expre ...