zoukankan      html  css  js  c++  java
  • <Redis> 入门二 五种数据类型的操作、通用key的操作、发布订阅

    文档参考:http://www.redis.net.cn/

    string -   > key value                简单的keyvalue,常规计数:例如微博数,粉丝数

    set        -> key value1 value2...            去重,所以保存用户的所有关注,粉丝。通过交集并集差集,可以实现共同关注,共同爱好等

    sortedset   -> key score1 value1 score2 value2       排行榜,代权重的消息队列

    hash   -> map [key1,value1    key2,value2...]    存对象,例如用户信息

    list       -> 队列key    value1 ..value2...value3..     做分布式消息队列,最新消息排行

    1.String 类型

    重复会覆盖之前的key值

    一个字符类型的key默认存储最大容量是512M 

    set key value       设置指定的key,value值

    get key                 获取指定的key值

    getrange key start end   返回key中包含头尾的子字符串

    getset key value        设置指定的key,value 返回旧的value,如果没有旧value,返回(nil),并设置key value

    setex key second value     设置key,value,并指定过期时间,单位为秒

    psetex  key  milliseconds value           设置key,value,并指定过期时间,单位为毫秒

    setnx key value     只有当不存在key时,才能设置成功

    strlen  key    返回字符串的长度

    incr key                 给key存储的数值加1,有原子性

    incrby  key  increment          给key存储的数值指定加increment

    incrbyfloat  key  increment   给key存储的数值指定加浮点类型  

     

    decr num           给key存储的数值减一

    decrby num decrement          给key存储的数值减decrement  

    append key value       给key后追加字符

    del key        删除key

     mget  key1[key2]  获取多个键的值,可以减少网络传输

     

    mset key value[key value]  可以设置多个键值

    2.hash类型

    字段名重复会覆盖之前的field的值

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

    Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)

    适合存储对象

    person:

    name:zhangsan

    age:18

    sex:男

    hset key field value           设置哈希key中的field的值为value,可以设置多个

    hget key field        获取哈希key中的field对应的value值

    hgetall key         获取哈希key中所有的键值对

    hexists key field        判断哈希key中对应的字段是否存在

    hdel  key  field                          删除key中指定的字段

     hincrby key field increment        给指定的哈希的字段数字增加increment

    hincrbyfloat key field increment     给指定的哈希的字段数字增加浮点increment

     

    hkeys key    获取哈希key中的所有字段

    hlen    key    获取哈希key中字段的个数

    hvals key   获取hash表中所有字段对应的值

    hsetnx key field value   只有当field字段不存在,设置哈希表字段的值

    3.list类型

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

    一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

    允许重复元素

    可以实现分部式消息队列

     lpush key value      将值插入列表头部,key是列表名,value是指

    rpush key value      将值插入列表尾部

    lrange key start stop    查询列表中的值,0 -1 表示所有

     

    lpushx key value    向已存在的列表头部添加值

    rpushx key value    向已存在的列表尾部添加至

    lpop key    弹出左边第一个元素,并返回元素值

    rpop key    弹出右边第一个元素,并返回元素值

    llen key   获取列表长度

    blpop key timeout      移除第一个元素,直到等待超时,或发现弹出为止

    brpop key timeout   移除最后一个元素,直到等待超时,或发现弹出为止

     4.set类型

    Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据

    Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

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

    sadd key value[value...]     向key集合中添加多个元素,如果存在,则会忽略存在的值,并返回成功加入的元素个数

    scard key            获取key集合中元素个数

    sdiff key1 [key2]         返回两个集合的差集

    sdiffstore destination key1[key2]  将两个集合的差集存储到目标集合destination中

    smembers key         返回集合中的所有成员

    sinter key1 [key2]     返回两个集合的交集

    sinter destination key1 [key2]     返回两个集合的交集并存储到目标集合

    sunion key1[key2]           将所有集合的并集显示出来 

    sunionstore destination key1[key2]      将所有集合的并集返回到destination中

    sismember key value    判断value是不是key中的元素

    spop key count     随机移除集合中的元素,count代表个数,返回移除的元素

    .

    srandmember key count    返回集合中count个随机值

    srem key value[value]       移除集合中一个元素或多个元素

     5.sortedSet类型

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

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

    有序集合的成员是唯一的,但分数(score)却可以重复。

    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)

    zadd key score1 member1[score2 member2]   向key集合添加分数和成员

    zcard key                  查看key集合中有几个元素

    zrange key start end withscores        显示集合中start 到 end 集合并且显示分数

    zcount key min max     计算集合元素中指定区间分数的成员数

    zscore key value     返回指定成员的分数值

    zrem key value      移除key集合中的指定成员

     6.key 通用命令

    keys *       查看所有的键

     

    type key    获取键对应的类型

    del key     删除指定的key

    rename key newkey     修改key的名字

    exists key        检查key是否存在

    expire key seconds     给key设置过期时间,单位是秒

    ttl key    查看还多少秒过期,-1为持久化

    pttl key   查看还多久过期,单位毫秒

    persist    去掉过期时间,持久化

    move key bd   将当前的key移动到指定的数据库

     

    发布订阅

    publish channal message

    subscribe channel [...]

  • 相关阅读:
    mac地址绑定
    解决php函数json_encode转换后中文被编码为unicode
    json格式转数组注意事项
    leetcode[93] Restore IP Addresses
    leetcode[92] Reverse Linked List II
    leetcode[91] Subsets II
    leetcode[90] Decode Ways
    leetcode[89] Merge Sorted Array
    leetcode[88] Gray Code
    leetcode[87] Partition List
  • 原文地址:https://www.cnblogs.com/mapleins/p/10166628.html
Copyright © 2011-2022 走看看