美文网首页
非关系型数据库(NoSql)

非关系型数据库(NoSql)

作者: 昆仑草莽 | 来源:发表于2019-04-23 10:16 被阅读0次

非关系型数据库在前面我们已经阐述了他的一些特点与性能,在这里将不在赘述,后面两个章节我们学习具有代表意义的两个非关系型数据库 redis 和 mongodb。这里我们将要总结的是基础的知识。包括他们的数据类型以及数据类型的使用。

redis数据库

redis特性:
1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
2、Redis不仅仅支持简单的key-value类型的数据,同时还把value分为list,set,zset,hash等数据结构存储。
3、因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,提高效率。
redis数据模型:
1、redis是key—values的数据结构,每一条数据都是一个键值对。
2、redis的key是字符串的类型。注意:键不能重复。
3、值的类型分为5种:

数据名称 数据类型
string 字符串
hash 哈希
list 列表
set 集合
Zset 有序d23集合
图1
redis的基本使用:
操作状态 操作指令
连接redis redis-cli
推出redis exit
操作服务端 sudo service redis start/stop/restart
切换数据库 select n(n是第n个数据库)

数据库没有名称,默认为16个,通过0-15来标识,连接redis默认选择第一个数据库。

vip@redis:~# sudo service redis start #开启服务
vip@redis:~# redis-cli #进入数据库
127.0.0.1:6379> exit #退出数据库
vip@redis:~# sudo service redis stop #关闭服务
vip@redis:~# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
vip@redis:~# sudo service redis start
vip@redis:~# redis-cli
127.0.0.1:6379> select 2 #转换数据库
OK
127.0.0.1:6379[2]> select 0
OK
127.0.0.1:6379>

redis的五大数据类型使用
一、string数据类型:
string是redis的最基本数据类型,一个key对应一个value。

操作状态 操作指令
设置数据 set key value (有则改,无则增)
查看数据 get key
追加数据 append key value
删除数据 del key
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> set sex man
OK
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> get sex
"man"
127.0.0.1:6379> append name john
(integer) 7
127.0.0.1:6379> get name
"tomjohn"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379>

二、全局key操作

操作状态 操作指令
查看所有key keys *
删除键值对 del key (del exists key) exists 查看key是否存在
改名 rename key new_key
设置过期时间 expire key second (ttl 查看过期时间,persist 删除过期时间)
127.0.0.1:6379> keys *
1) "sex"
2) "ages"
127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> del exists names
(integer) 0
127.0.0.1:6379> rename ages age #修改键名称
OK
127.0.0.1:6379> expire age 5
(integer) 1
127.0.0.1:6379> keys *
1) "sex"
2) "name"
127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> expire age 100  #设置过期时间
(integer) 1
127.0.0.1:6379> ttl age  #查看你过期时间
(integer) 95
127.0.0.1:6379> ttl age
(integer) 92
127.0.0.1:6379> ttl age
(integer) 89
127.0.0.1:6379> persist  age #删除过期时间
(integer) 1
127.0.0.1:6379> ttl age  #没有设置过期时间时候返回为-1
(integer) -1
127.0.0.1:6379> ttl ages  #没有这个键的时候,返回为-2
(integer) -2

三、List数据类型:
list数据类型是一个字符串数据列表,可以在列表的头部或尾部添加数据,或删除数据。在插入数据时,如果该键不存在,redis将为该键创建一个

操作状态 操作指令
添加数据 rpush/lpush key value [value...] 左/右添加数据
查看数据 lrange key start stop(开始位置,结束位置),或 lindex key index 查看某个数据
修改数据 lset key index value
删除数据 rpop/lpop key 左/右 删除数据
127.0.0.1:6379> rpush name 111 222 333
(integer) 3
127.0.0.1:6379> lpush name 999 888 777
(integer) 6
127.0.0.1:6379> lrange name 0 10
1) "777"
2) "888"
3) "999"
4) "111"
5) "222"
6) "333"
127.0.0.1:6379> lindex name 3
"111"
127.0.0.1:6379> lindex name 1
"888"
127.0.0.1:6379> lset name 1 hhh
OK
127.0.0.1:6379> lrange name 0 10
1) "777"
2) "hhh"
3) "999"
4) "111"
5) "222"
6) "333"
127.0.0.1:6379> rpop name
"333"

四、hash数据类型:
hash类型是一个键值对的集合(key=>value),是string数据类型的field和value的映射。
user {name :zhangsan, age : 18} ,user=>key ,name,age=> field(域) ,zhangsan,18=>value

操作状态 操作指令
添加数据 hset key field value
查看阈值 hget key field 或hgetall key 查看所有的field和value
查看所有的value hvals key
查看所有的field hkeys key
127.0.0.1:6379> hset user name zhangsan
(integer) 1
127.0.0.1:6379> hset user sex man
(integer) 1
127.0.0.1:6379> hset user age 18
(integer) 1
127.0.0.1:6379> hget user name
"zhangsan"
127.0.0.1:6379> hgetall user
1) "name"
2) "zhangsan"
3) "sex"
4) "man"
5) "age"
6) "18"
127.0.0.1:6379> hvals user
1) "zhangsan"
2) "man"
3) "18"
127.0.0.1:6379> hkeys key
(empty list or set)
127.0.0.1:6379> hkeys user
1) "name"
2) "sex"
3) "age"

五、set数据类型:
set类型为无序的字符集合,元素具有唯一性,不重复。

操作状态 操作指令
添加数据 sadd key member [member...]
查看数据 smembers key
随机删除 spop key
指定删除 srem key member [member...]
127.0.0.1:6379> sadd class class1 class2
(integer) 2
127.0.0.1:6379> smembers class
1) "class1"
2) "class2"
127.0.0.1:6379> spop class
"class2"
127.0.0.1:6379> sadd class class3 class2 class4
(integer) 3
127.0.0.1:6379> smembers class
1) "class3"
2) "class1"
3) "class2"
4) "class4"
127.0.0.1:6379> srem class class3
(integer) 1
127.0.0.1:6379> smembers class
1) "class1"
2) "class2"
3) "class4"
127.0.0.1:6379>

六、sorted set数据类型:
每个成员都会有一个分数(score)与之关联,成员是唯一的,但是分数(score)是可以重复的。

操作状态 操作指令
添加数据 zadd score member [scor2 member2...]
查看数据 zrange key start stop 或 zrangebyscore key min max 通过score值查看
删除数据 zrem key member [member...]
通过索引删除多个数据 zremrangebyrank key min max 或 zremrangebyscore key min max 通过score删除
127.0.0.1:6379> zadd work 1 work2
(integer) 1
127.0.0.1:6379> zadd work 1 work3
(integer) 1
127.0.0.1:6379> zadd work 2 work4
(integer) 1
127.0.0.1:6379> zadd work 2 work5
(integer) 1
127.0.0.1:6379> zadd work 3 work6
(integer) 1
127.0.0.1:6379> zadd work 3 work7
(integer) 1
127.0.0.1:6379> zrange work 0 10
1) "work1"
2) "work2"
3) "work3"
4) "work4"
5) "work5"
6) "work6"
7) "work7"
127.0.0.1:6379> zrangebyscore work 1 2
1) "work1"
2) "work2"
3) "work3"
4) "work4"
5) "work5"
127.0.0.1:6379> zrem work work1
(integer) 1
127.0.0.1:6379> zrange work 0 10
1) "work2"
2) "work3"
3) "work4"
4) "work5"
5) "work6"
6) "work7"
127.0.0.1:6379> zremrangebyrank work 1 2
(integer) 2
127.0.0.1:6379> zrange work 0 10
1) "work2"
2) "work5"
3) "work6"
4) "work7"
127.0.0.1:6379> zremrangebyscore work 2 3
(integer) 3
127.0.0.1:6379> zrange work 0 10
1) "work2"
127.0.0.1:6379>

总结:NoSql现在使用越来越广泛,越来越频繁。要掌握基本用法,使用命令可以在使用到的时候去查询,想要记住估计很难。

相关文章

  • Mongodb and pymongo

    mongodb:非关系型数据库 一: 非关系型数据库NoSQL全称--Not Only Sql 非关系型数据库主要...

  • 116.mongodb

    mongodb:非关系型数据库##一:非关系型数据库NoSQL全称-不仅SQL非关系型数据库的主要特点:非关系型的...

  • redis的使用

    1. Nosql、非关系型数据库 1.1. NoSql数据库 NoSql数据库,not only sql,指代非关...

  • MongoDB小总结

    关系型数据库:mysql非关系型数据库:mongodb、redismongodb:(nosql:not only ...

  • MongDB简单介绍

    一.关系型与非关系型 NoSQL not only sqlNoSQL,指的是非关系型的数据库。NoSQL有时也称...

  • Redis快速了解

    什么是NoSQL NoSQL,泛指非关系型数据库,NoSQL即Not_Only_SQL,它可以作为关系型数据库的良...

  • Node(5)

    一、NOSQL NOSQL是Not Only SQL的简称,与关系型数据库对应,一般称为非关系型数据库。关系型数据...

  • 09_Redis(NOSQL)

    NOSQL介绍 NOSql,全称 not only sql ,不仅仅是sql,泛指非关系型数据库。 非关系与关系型...

  • mongo(一)

    第一章 关系型与非关系型 NoSQL not only sqlNoSQL,指的是非关系型的数据库。NoSQL有时...

  • MongoDB

    一、MongoDB安装 NoSQL,全称是”Not Only Sql”,指的是⾮非关系型的数据库。 非关系型数据库...

网友评论

      本文标题:非关系型数据库(NoSql)

      本文链接:https://www.haomeiwen.com/subject/uydmgqtx.html