欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

NoSQL之redis用法

程序员文章站 2022-03-20 09:36:35
什么是NoSQL? 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是Key-Value(即键值对关系)形式 NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景 NoSQL中的产品种类 ......

什么是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