Redis的优点及其数据类型

文章目录

  • 什么是Redis
  • Redis的优点
  • Redis数据类型
    • string(字符串)
    • Hash(哈希)
    • List(双向链表)
    • set(集合)
    • sortedSet(有序集合)
    • 其他命令

什么是Redis

Remote Dictionary Server(Redis)是一个开源的使用 ANSI C 语言编写、支持网络、可
基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。

Redis的优点

  1. 支持多种数据结构,如string(字符串)、list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)
  2. 支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数
    据恢复等操作,较好的防止数据丢失的手段。
  3. 支持通过 Replication 进行数据复制,通过 master-slave 机制,可以实时进行数据的
    同步复制,支持多级复制和增量复制,master-slave 机制是 Redis 进行 HA 的重要手段。
  4. 单进程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。(并发不一定是并行,有可能是串行,并行一定是并发,这个以后再讲)

Redis数据类型

string(字符串)

Redis 字符串是字节序列。Redis 字符串是二进制安全的,这意味着他们有一个已知的长
度没有任何特殊字符终止,所以你可以存储任何东西,512 兆为上限。
直接连接单机版的Redis演示就好了
Redis的优点及其数据类型_第1张图片
输入: help @string 可以看到string提供的各个方法
Redis的优点及其数据类型_第2张图片

  1. 基本的get 与set,因为Redis是Key-Value数据库,所以直接按键值对的方式存就好了

Redis的优点及其数据类型_第3张图片
2. incr自增加1
Redis的优点及其数据类型_第4张图片
3、incrby增加指定值
Redis的优点及其数据类型_第5张图片
4. decr自减1
Redis的优点及其数据类型_第6张图片
5. decrby减少指定值
Redis的优点及其数据类型_第7张图片
6. incrbyfloat可以增加浮点数
在这里插入图片描述
7. append可以再建值末尾追加值,如果建不存在则创建并赋该值,返回字符串总长度
Redis的优点及其数据类型_第8张图片
8. mget/mset 与get/set类似,不够mget/mset可以同时设置多个键的值
Redis的优点及其数据类型_第9张图片
9. del 删除key
Redis的优点及其数据类型_第10张图片
10. flushdb清空当前库的所有值
Redis的优点及其数据类型_第11张图片

Hash(哈希)

Hash结构:
Redis的优点及其数据类型_第12张图片
哈希和字符串类似,但是多了一个中间键,多了这么一个键有什么应用场景呢?

比如要存计算机与软件学院的每个学生姓名,为了区分,如果使用string存储,那么每个学生都必须有个前缀计算机与软件学院,这样我如果要拿到学生姓名还要进行IO流读写再进行字符串匹配才能拿到,这中间得消耗多少资源,而如果是hash,我中间放一个键是计算机与软件学院,value才放学生姓名我不就可以省去了许多麻烦的操作直接拿到值了。

  • help @hash 查询所有hash操作
    Redis的优点及其数据类型_第13张图片

    1. hset与hget 存储单个和获取单个
      Redis的优点及其数据类型_第14张图片
    2. hmset 和hmget可以同时存多个和获取多个值
      Redis的优点及其数据类型_第15张图片
    3. hexists 判断哈希表中的字段名是否存在,存在返回1,不存在返回0
      Redis的优点及其数据类型_第16张图片
    4. hgetall 获取一个哈希表的键值对的集合
      Redis的优点及其数据类型_第17张图片
    5. hvals 只返回哈希表的字段值,不返回键值
      Redis的优点及其数据类型_第18张图片
    6. hkeys 只返回filed值,不返回value值
      Redis的优点及其数据类型_第19张图片
    7. hlen 返回key的hash元素个数
      在这里插入图片描述
    8. hdel 删除一个或多个字段
      Redis的优点及其数据类型_第20张图片

    List(双向链表)

    Redis的优点及其数据类型_第21张图片

  1. lpush key value 向链表左侧添加
    Redis的优点及其数据类型_第22张图片

  2. rpush key value 向链表右侧添加
    Redis的优点及其数据类型_第23张图片
    这个push是最开始的那个为基准然后不断移动的,都来看Redis了,数据结构中的双向链表应该都知道了吧

  3. lrange key start end lrange 命令将返回索引从 start 到 stop 之间的所有元素。Redis 的列
    表起始索引为 0
    Redis的优点及其数据类型_第24张图片
    lrange 也支持负索引 lrange nn -2 -1 如 -1 表示最右边第一个元素 -2 表示最右边第二
    个元素,依次类推。
    Redis的优点及其数据类型_第25张图片

  4. lindex key indexnumber 如果要将列表类型当做数组来用,lindex 命令是必不可少的。
    lindex 命令用来返回指定索引的元素,索引从 0 开始
    Redis的优点及其数据类型_第26张图片

  5. Lset key indexnumber value 是另一个通过索引操作列表的命令,它会将索引为 index
    的元素赋值为 value。
    Redis的优点及其数据类型_第27张图片

  6. lpop key 从左边移出一个元素
    Redis的优点及其数据类型_第28张图片

  7. rpop key 从右边移出一个元素
    Redis的优点及其数据类型_第29张图片

set(集合)

Redis的优点及其数据类型_第30张图片

  1. sadd key value 添加一个 string 元素到,key 对应的 set 集合中,成功返回 1,如果元素已经
    在集合中返回 0
    Redis的优点及其数据类型_第31张图片
  2. scard key 返回 set 的元素个数,如果 set 是空或者 key 不存在返回 0
    Redis的优点及其数据类型_第32张图片
  3. smembers key 返回 key 对应 set 的所有元素,结果是无序的
    Redis的优点及其数据类型_第33张图片
  4. sismember key value 判断 value 是否在 set 中,存在返回 1,0 表示不存在或者 key 不存

    Redis的优点及其数据类型_第34张图片
  5. srem key value 从 key 对应 set 中移除给定元素,成功返回 1,如果 value 在集合中不存
    在或者 key 不存在返回 0
    Redis的优点及其数据类型_第35张图片

sortedSet(有序集合)

  1. zadd key score value 将一个或多个 value 及其 socre 加入到 set 中
    Redis的优点及其数据类型_第36张图片
  2. zrange key start end 0 和-1 表示从索引为 0 的元素到最后一个元素(同 LRANGE 命令相
    似)
    Redis的优点及其数据类型_第37张图片
  3. zrange key 0 -1 withscores 也可以连同 score 一块输出,使用 WITHSCORES 参数
    Redis的优点及其数据类型_第38张图片
  4. zremrangebyscore key start end 可用于范围删除操作
    Redis的优点及其数据类型_第39张图片
    Redis的优点及其数据类型_第40张图片

其他命令

1、expire key time(s) 设置一个 key 的过期时间 单位秒。时间到达后会删除 key 及 value
2、ttl key 查询已设置过期时间的 key 的剩余时间 如果返回-2 表示该键值对已经被删除
3、persist 移除给定 key 的过期时间

Redis的优点及其数据类型_第41张图片
keys * 返回所有的 key 可以加*通配
Redis的优点及其数据类型_第42张图片
flushdb 删除当前选择的数据库中的 key
flushall 删除所有数据库中的所有 key
Redis的优点及其数据类型_第43张图片
quit 退出连接或者按crtl+C

你可能感兴趣的:(Redis,数据库,redis,数据库)