zoukankan      html  css  js  c++  java
  • redis

      转自菜鸟教程

    一、简介

    redis是一个高性能的key-value的数据库,redis有如下特点:

    • 支持数据持久化,可以将内存中的数据持久化到磁盘中,重启的时候可以继续使用。
    • 不仅支持简单的key-value类型的数据,还支持list、set、zset(sorted set有序集合)、hash等类型数据
    • 支持数据的备份,即master-slave模式的数据备份。

    redis的所有操作都是原子性的,可以对几个操作合并后的原子性执行,Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    二、redis数据类型

      1、String字符串

      string是redis最基本数据类型,类似于memcached key=>value式。String类型是二进制安全的,意味着redis的string可以包含任何数据包括jpg图片或者序列化的对象

      string类型是redis最基本的数据类型,一个键最大能存储512M。

      例:

    >SET name "test"
    OK
    >GET name
    "test"

      2、Hash(哈希)

      redis hash是键值对集合

      redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象

      例:

    redis 127.0.0.1:6379> HMSET user:1 username w3cschool.cc password w3cschool.cc points 200
    OK
    redis 127.0.0.1:6379> HGETALL user:1
    1) "username"
    2) "w3cschool.cc"
    3) "password"
    4) "w3cschool.cc"
    5) "points"
    6) "200"
    redis 127.0.0.1:6379>

      实例中我们使用了 Redis HMSET, HGETALL 命令,user:1 为键值。每个 hash 可以存储 232 - 1 键值对(40多亿)。

      3、List(列表)

      Redis列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部(左边)或者尾部(右边)

      例:

    redis 127.0.0.1:6379> lpush w3cschool.cc redis
    (integer) 1
    redis 127.0.0.1:6379> lpush w3cschool.cc mongodb
    (integer) 2
    redis 127.0.0.1:6379> lpush w3cschool.cc rabitmq
    (integer) 3
    redis 127.0.0.1:6379> lrange w3cschool.cc 0 10
    1) "rabitmq"
    2) "mongodb"
    3) "redis"
    redis 127.0.0.1:6379>

      列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

      4、Set(集合)

      redis的Set是string类型的无序集合,不允许重复,集合是通过哈希表实现的,所以添加、删除、查找复杂度都是O(1)

      sadd命令将一个string元素添加到key对应的set集合中,成功返回1,如果元素已经在集合中则返回0,key对应的set不存在返回错误

    sadd key member

      例:

    redis 127.0.0.1:6379> sadd w3cschool.cc redis
    (integer) 1
    redis 127.0.0.1:6379> sadd w3cschool.cc mongodb
    (integer) 1
    redis 127.0.0.1:6379> sadd w3cschool.cc rabitmq
    (integer) 1
    redis 127.0.0.1:6379> sadd w3cschool.cc rabitmq
    (integer) 0
    redis 127.0.0.1:6379> smembers w3cschool.cc
    
    1) "rabitmq"
    2) "mongodb"
    3) "redis"

      

      注意:以上实例中 rabitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。

      集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

      5、zset(有序集合)

      zset与set一样是string类型的集合,不允许重复。不同的是每个元素都会关联double类型的分数。redis正是通过分数来为集合中的成员从小到大排序,zset的成员是唯一的,但分数可以重复

      zadd命令添加元素到集合,元素在集合中存在则更新对应的score

      

    zadd key score member 

      例:

    redis 127.0.0.1:6379> zadd w3cschool.cc 0 redis
    (integer) 1
    redis 127.0.0.1:6379> zadd w3cschool.cc 0 mongodb
    (integer) 1
    redis 127.0.0.1:6379> zadd w3cschool.cc 0 rabitmq
    (integer) 1
    redis 127.0.0.1:6379> zadd w3cschool.cc 0 rabitmq
    (integer) 0
    redis 127.0.0.1:6379> ZRANGEBYSCORE w3cschool.cc 0 1000
    
    1) "redis"
    2) "mongodb"
    3) "rabitmq"
  • 相关阅读:
    Coursera机器学习week11 单元测试
    关于 TypeReference 的解释
    getModifiers 方法解释。
    instanceof isInstance isAssignableFrom 比较
    elasticsearch 基础 语法总结
    kibana 启动 关闭 和进程查找
    MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别
    spring boot 项目 热启动
    java zip 压缩文件
    Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
  • 原文地址:https://www.cnblogs.com/orlion/p/5195923.html
Copyright © 2011-2022 走看看