NoSQL之redis用法
什么是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用法的更多相关文章
- 【NoSql】Redis
[NoSql]Redis 一. 文档 1. 官网 2. Windows 安装包 3. C# Driver a. ServiceStack.Redis 最新版本是收费的 b. StackExchange ...
- NoSQL之Redis高级实用命令详解--安全和主从复制
Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim ...
- NoSQL:redis缓存数据库
一 Redis介绍 Redis和Memcached类似,也属于key-value nosql 数据库 Redis官网redis.io, 当前最新稳定版4.0.1 和Memcached类似,它支持存储的 ...
- [转]使用python来操作redis用法详解
转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...
- python操作redis用法详解
python操作redis用法详解 转载地址 1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用 ...
- No-sql之redis常用命令
转自:http://blog.csdn.net/nicewuranran/article/details/51793760 No-SQL之Redis 介绍 Redis是一种基于内存存储的key-val ...
- NoSQL之Redis学习笔记
一.NoSQL与Redis 1.什么是NoSQL? NoSQL=Not Only SQL ,泛指非关系型数据库.随着互联网的兴起,传统的关系型数据库已经暴露了很多问题,NoSQL数据库的产生就是为了解 ...
- 【一个idea】YesSql,一种在经典nosql数据库redis上实现SQL引擎的方案(我就要开历史的倒车)
公众号链接 最高级的红酒,一定要掺上雪碧才好喝. 基于这样的品味,我设计出了一套在经典nosql数据库redis上实现SQL引擎的方法.既然redis号称nosql,而我偏要把SQL加到redis上, ...
- NoSQL 之Redis的5大数据类型
NoSQL 之Redis的5大数据类型 Redis的五大数据类型也称五大数据对象:了解过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisO ...
随机推荐
- Android 项目主要文件
1.manifests下的AndroidManifest.xml是Andriod程序的清单文件,该文件是整个项目的配置文件,Android四大组件Activity.BroadcastReceiver. ...
- [b0015] python 归纳 (一)_python组织方式
结论: xxx.yyyy yyyy 可以是 类.类对象.函数.变量 xxx 可以是 包.模块.类 代码: ref1.py # -*- coding: utf-8 -*- import os class ...
- linux epoll,poll,select
epoll函数用法,还有点poll和select 1,LT的epoll是select和poll函数的改进版. 特点是,读完缓冲区后,如果缓冲区还有内容的话,epoll_wait函数还会返回,直到把缓冲 ...
- BeanShell实现加密解密功能
一,在IDEA中写好加密的脚本 二,然后将整个包文件导出,生成jar包 三,将jar包文件放到jmeter的lib/ext目录下 然后在jmeter的BeanShell中引入该类,调用其中的加密方法 ...
- Ansible 相关介绍
相关视频http://v.xue.taobao.com/learn.htm?spm=a220o.1000855.0.0.24c748e6QMQV0e&courseId=111848 Ansib ...
- 面向对象程序设计(Java) 第4周学习指导及要求
2019面向对象程序设计(Java)第4周学习指导及要求(2019.9.17-2019.9. 23) 学习目标 掌握类与对象的基础概念,理解类与对象的关系: 掌握对象与对象变量的关系: 掌握预定义类 ...
- robotframework-post request请求携带上一个请求返回的cookie
公司的接口服务需要先登录,获取服务端的cookie后,在后续的请求中携带这个cookie才能够访问 在尝试用RF工具进行自动化接口测试时,发现先访问登录接口之后,接着请求其他接口时没有自动携带上次请求 ...
- IDEA写vue项目出现红色波浪线警告如何解决??
1.看图 2.希望对大家有帮助,只要修改了这个就可以,如有任何问题都可以留言,谢谢大家 2019-09-1923:54:11 作者:何秀好
- centos7编译安装php 遇到的问题
centos7 编辑安装php遇到的问题: ./configure 配置遇到的No package 'libxml-2.0' found缺失libxml2.0 库,解决方法: yum -y insta ...
- Linux SSH建立连接过程分析
https://blog.csdn.net/qwertyupoiuytr/article/details/71213463 SSH建立连接的过程主要分为下面几个阶段: SSH协议版本协商阶段.SSH目 ...