zoukankan      html  css  js  c++  java
  • redis数据结构

    1、string

    string 是 redis 最基本的数据类型,一个 key 对应一个 value,最大能存储 512MB。string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。

    示例:

    127.0.0.1:7000> set key value
    -> Redirected to slot [12539] located at 127.0.0.1:7002
    OK
    127.0.0.1:7002> get key
    "value"
    127.0.0.1:7002> del key
    (integer) 1

    2、hash

    hash是键值对的形式,类似java中的map。每个 hash 可以存储 232 -1 键值对(40多亿)。

    示例:

    127.0.0.1:7002> hset hkey field1 value1
    (integer) 1
    127.0.0.1:7002> hmset hkey field2 value2 field3 value3
    OK
    127.0.0.1:7002> hkeys hkey
    1) "field1"
    2) "field2"
    3) "field3"
    127.0.0.1:7002> hlen hkey
    (integer) 3
    127.0.0.1:7002> hmget hkey field1 field2
    1) "value1"
    2) "value2"
    127.0.0.1:7002> hdel hkey field1 field2 field3
    (integer) 3

    3、list

    list是有序的集合,类似java中的数组,支持在前后端插入、获取、删除元素。

    示例:

    127.0.0.1:7002> lpush lkey value1
    -> Redirected to slot [9755] located at 127.0.0.1:7001
    (integer) 1
    127.0.0.1:7001> rpush lkey value2 value3
    (integer) 3
    127.0.0.1:7001> lrange lkey 0 2
    1) "value1"
    2) "value2"
    3) "value3"
    127.0.0.1:7001> llen lkey
    (integer) 3
    127.0.0.1:7001> lpop lkey
    "value1"
    127.0.0.1:7001> rpop lkey
    "value3"
    127.0.0.1:7001> llen lkey
    (integer) 1

    这里可以利用lrange+lrem实现弹出多个元素,类似循环lpop,但是需要注意的是lrange+lrem需要在外部保证事务的完整性。

    4、set

    set是string类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。set集合的值具有唯一性。

    示例:

    127.0.0.1:7001> sadd skey value1 value2 value1
    (integer) 2
    127.0.0.1:7001> smembers skey
    1) "value2"
    2) "value1"

    5、sorted set(zset)

    zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    zset的成员是唯一的,但分数(score)却可以重复。

    示例:

    127.0.0.1:7001> zadd zkey 1 value1
    (integer) 1
    127.0.0.1:7001> zadd zkey 1 value2
    (integer) 1
    127.0.0.1:7001> zadd zkey 1 value3
    (integer) 1
    127.0.0.1:7001> zadd zkey 1 value1
    (integer) 0
    127.0.0.1:7001> zrange zkey 0 3
    1) "value1"
    2) "value2"
    3) "value3"
  • 相关阅读:
    Mysql -- SQL常用命令实例
    JavaWeb -- 文件上传下载示例
    Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组
    JavaWeb -- 自定义标签实例, 防盗链, JSTL 核心标签
    JavaWeb -- Jsp 自定义标签的使用
    JavaWeb -- http-equiv=refresh跳转的时候出现Session 丢失, 解决办法。。
    JavaScript -- 正则表达式 检验表单提交的内容
    FSG压缩壳和ImportREC的使用
    愉快的开始
    学习Python的捷径
  • 原文地址:https://www.cnblogs.com/longc-pub/p/11284141.html
Copyright © 2011-2022 走看看