zoukankan      html  css  js  c++  java
  • redis基础知识学习

    数据结构:
    1.String
    添加:
    set key value
    get key
    getset key value (先get再set)
    incr key (key对应value原子性递增1)
    decr key (key对应value原子性递减1)
    incrby key increment (key对应value原子性递增 increment )
    decrby key decrement
    append key value (追加值)

    2.List
    特点:
    链表的所有元素被移除,链表也从数据库中删除
    添加:
    前:lpush key values[1,2]
    后:rpush key values[1,2]
    仅当key存在
    前:lpushx key values
    后:rpushx key values
    查看:
    Lrange key start end (start end从0开始,为-1表示最后一个)
    lien key 链表数量
    删除:
    lpop key
    rpop key
    扩展:
    rpoplpush resource destination 将尾部弹出放到头部
    llen key 数量
    lset key index value:设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。
    linsert key before|after pivot value:在pivot元素前或者后插入value这个元素。
    lrem key count value:删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素。

    3.Set
    特点:和java中Set相仿,可以在服务器端完成Set集合的聚合计算
    添加删除:
    sadd key values[valuel. value2...]:向set中添加数据,如果该key的值已有则不会重复添加
    srem key members[memberl. member2...]:删除set中指定的成员

    获得集合的元素:
    smembers key:获取:et中所有的成员
    sismember key member:判断参数中指定的成员是否在该set中,1表示存在,。表示不存在或
    者该key本身就不存在。(无论集合中有多少元素都可以极速的返回结果)

    集合的差集运算A-B:
    sdiff keyl key2...:返回keyl与key2中相差的成员,l}ij.f-I_'} key fI}JJ}ItiJ=1:有关。即}}} ILII-fl:集。

    集合的交集运算A N B
    sinter keyl key2 key3...:返交集。

    集合的并集运算A U B
    sunion keyl key2 key3二:返回并集。

    扩展:
    scard key:获取set中成员的数量
    srandmember key:随机返回set中的一个成员
    sdiffstore destination keyl key2:将key1. key2相差的成员存储在destination上
    sinterstore destination key[keys]:将返回的交集存储在destination上
    sunionstore destination key[keys]:将返回的并集存储在destination上
    应用场景:
    存唯一值,保存某些对象依赖关系

    4.Sort-Set
    1.特点:
    每个成员都有score与之对应,并按score从小到大排序,(应用场景:排行榜);
    2.操作:
    添加:
    元素:zadd key score member score2 member2...
    获得
    单个元素:zscore key member
    成员数量:zcard key
    删除:
    zrem key member
    范围查询:
    角标:zrange key start end [withscores]
    分数从大到小排序后返回索引:zrevrange key start stop[withscores]
    按排名范围删除元素:zremrangebyrank key start stop
    zrangebyscore key min max [withscores] [limit offset count]:返回分数在[min,max]的成员并按照分
    数从低到高排序。[withscores]:显示分数;[limit offset count]: offset,表明从脚标为offset的元
    素开始并返回cou nt个成员。

    zincrby key increment member:设置指定成员的增加的分数。返回值是更改后的分数。
    zeount key min max:获取分数在[min,max]之间的成员
    zrank key member:返回成员在集合中的排名。(从小到大)
    zreVrank key member:返回成员在集合中的排名。(从大到小)


    5.hash
    1)hset key field value:为指定的key设定field/value对(键值对)。
    2)hgetall key:获取key中的所有filed-vaule
    3)hget key field:返回指定的key中的field的值
    4)hmset key fields:设置key中的多个filed/value
    5)hmget key fileds:获取key中的多个filed的值
    6)hexists key field:判断指定的key中的filed是否存在
    7)hlen key:获取key所包含的field的数量
    8)hincrby key field increment:设置key中filed的值增加increment,如:age增加20


    redis 特性

    redis多数据库(16个)
    下标从0到15,默认0
    select x(选择哪个数据库)
    移植key到数据库
    move newkey 1

    消息订阅与发布
    subscribe xxx
    psubscribt s*
    publish channel content 在channel频道发布消息

    1.事务
    事务开启:multi
    事务保存:exec
    回滚:discard
    特点:事务的原子性(停止响应其他服务端请求);事务中出错被忽略

    2.持久化
    RDB模式 : 在指定时间间隔内将内存中数据集快照持久化
    redis.conf配置文件
    save 900 1
    save
    save 30 10000 每30秒若有10000个key变动则内存快照

    AOF模式 : 写日志的方式记录操作

  • 相关阅读:
    【算法微解读】浅谈01分数规划
    【算法微解读】浅谈线段树
    近期目标
    【洛谷P5008 逛庭院】tarjan缩点+贪心
    【洛谷P1061 Jam的计数法】搜索
    【洛谷P1140 相似基因】动态规划
    【建兰普及模拟赛四】20181026
    【建兰普及模拟赛第三场】20181035
    【洛谷P2800又上锁妖塔】动态规划
    【建兰普及模拟赛第二场】20181024
  • 原文地址:https://www.cnblogs.com/anhaogoon/p/7737210.html
Copyright © 2011-2022 走看看