zoukankan      html  css  js  c++  java
  • redis 数据库

    redis 数据库

    一、配置

      我的log日志:/var/log/redis
      我的redis服务端的启动: sudo redis-server /etc/redis/redis.conf
      停止redis服务
        ps ajx|grep redis
        sudo kill -9 redis的进程id

      客户端启动:redis-cli
      数据文件存储路径:/var/lib/redis

    二、value的数据类型:

    1.string

    set key value [ex seconds]
    nx :不存在则创建key
    xx: 存在则创建
    get key 根据key得到values值

    setnx 不存在则创建key
    setex 设置过期时间

    批量设置和取值:
    mset :设置多个键值对
    mget :得到多个键值

    修改:
    set count 99 -- 进行覆盖
    设置新值取回旧值
    getset key new_value

    增加 incr key -----+1
    减少 decr key ------ -1
    incrby key 5 ---- +5 指定值增加
    decrby key 5 ------ -5 减少

    类似切片操作
    getrange key start end []
    setrange key 5 ab 在5那进行插入

    字符串长度:
    strlen key

    2.hash

    key:可以绑定一些关联性较强的数据
    user:{name:'',password:'',addr:'',phone:''}
    设置:
    hset key field value
    hget key field 只能获取指定field的值

    hmset key field value field value ...
    hmget key field field ...

    hgetall key -- 获取全部
    hkeys key ----- dict.keys()
    hvals key ------dict.values()

    删除:hdel key field
    获取个数:
    hlen key
    hexists key field

    3.list

    lpush key value -默认放到首部
    rpush key value 尾部
    llen key -长度
    lrange key start stop 获取列表内容

    lpushx key value 存在则往列表中添加

    在一个元素的前|后插入新元素
    linsert key BEFORE|AFTER pivot value

    lset key index new_value

    lrem key count value -- count表示个数
    list是允许重复,就会有多个相同值,通过count指定个数

    lpop key -- 删除列表的第一个最上面的元素

    根据索引获取列表内元素
    lindex key index

    4、set

    类似 python set{'admin','gao',...}
    添加:
    sadd key members
    获取:
    smembers key
    scard key 获取长度

    交集:
    sinter key1 key2...
    差集:
    sdiff key1 key2...
    合集:
    sunion key1 key2...

    sismember key member -- 判断member是否是key中成员

    smove key1 key2 member ----移动赋值
    spop key ----随机删除元素
    srem key member ---指定元素删除

    5、zset

    有序集合,在集合的基础上,为元素排序;元素的排序需要根据另外一个值来进行比较。所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来排序

    添加:zadd key [nx|xx] score member...
    nx--没有就创建
    xx--存在就修改
    查看:
    zrange key start stop... 从小到大
    zrevrange key start stop... 从大到小

    zadd key xx incr 1 james ---如果存在则在原来的基础上增加1

    返回元素个数:
    zcard key
    zcount key min max 指定范围之间的个数

    zscore key member 查看member的score值
    zrangebyscore z2 (100 -inf withscores 比100大的元素
    zrevrangebyscore z2 (200 -inf withscores 小于200以下的

    删除:
    zrem key member 删除指定member的元素
    zremrangebyscore key min max 根据score的范围实现删除

    运算:
    交集:
    zinterstore new_key 2 key1 key2
    合集:
    zunionstore new_key 2 key1 key2 数字2指的是2个key求合集

    flushdb 清空当前库所有的key、

    flushall 清空所有的库

    三、备份

    save config get dir /var/lib/redis SAVE和BGSAVE命令的区别在于:SAVE命令是阻塞主进程,save操作完成之后,主进程才开始工作,客户端可以连接;BGSAVE命令是fork一个专门save的子进程,此操作不会影响主进程。

    恢复:把dump.rdb放到启动redis的目录下,重启redis即可恢复数据。

    主从复制

    一路独行,遇见最好的自己!!!
  • 相关阅读:
    暑假集训Day14 I (莫队)
    暑假集训Day14 G (gcd 数学)
    暑假集训Day13 H (进制转换 数学)
    暑假集训Day13 C (二分+贪心)
    暑假集训Day13 I (区间DP)
    暑假集训Day12 H (数论 STL)
    Java8中list转map方法总结
    Typora ---一款简洁的Markdown编辑器
    java8 map flatmap
    Elasticsearch基本查询总结
  • 原文地址:https://www.cnblogs.com/rungang/p/11518511.html
Copyright © 2011-2022 走看看