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"
  • 相关阅读:
    android 保存图片,及将图片更新到图库
    android 点击数字跳转到电话界面
    使用Picasso将加载的图片变成圆形
    如何获取listview里面的edittext或者RadioGroup的值,涉及到引发的混乱现象
    返回页面,并将此页面数据刷新一遍
    DrawerLayout建立侧滑时,显示侧滑页面,底层页面仍可以有点击响应,解决办法。
    实现双击退出程序
    sql语句查找某一列的值得最大值。
    vue 实战笔记一项目准备
    node的基础知识
  • 原文地址:https://www.cnblogs.com/longc-pub/p/11284141.html
Copyright © 2011-2022 走看看