zoukankan      html  css  js  c++  java
  • redis基础操作

    版本号管理:
    第一个小数点后的数字为偶数是稳定版本, 如 2.4 2.6
    为奇数的版本为不稳定版本


    安装
    $ wget http://download.redis.io/releases/redis-4.0.0.tar.gz
    $ tar xzf redis-4.0.0.tar.gz
    $ cd redis-4.0.0
    $ make

    $ src/redis-server

    $ src/redis-cli
    redis> set foo bar
    OK
    redis> get foo
    "bar"

    redis可执行文件说明
    redis-server redis服务器
    redis-cli redis命令行客户端
    redis-benchmark redis性能测试工具
    redis-check-aof aof文件修复工具
    redis-check-dump rdb文件检查工具

    redis启动服务
    src/redis-server --port 6380
    默认使用6379,--port参数可以自定义端口

    编辑配置文件

    vim /etc/redis.conf

    bind 0.0.0.0

    daemonize yes

    Redis支持的键值数据类型:

    1.字符串类型

    2.散列类型

    3.列表类型

    4.集合类型

    5.有序集合类型

    测试客户端与redis是否连接正常,

    ping命令 返回pong

    多数据库

    一个数据库实例中可以创建多个数据库,redis默认支持16个数据库

    select 1;  进行切换

    获取符合规则的键名

    keys pattern 

    eg; keys *    ,  keys user:*

    建议一个键值

    set bar 1

    判断是否存在

    EXISTS key

    删除键

    del key

    获取键值的数据类型

    type key

    五大数据类型基本操作

    字符串类型:

      set key value

      get key      -------------------》当键不存在时返回null

    向尾部追加值

      set key hello

      append  key " world!"

    获取字符串长度

      strlen key

    同时获得/设置多个键值

      MGET key [key....]

      MSET key value [key value...]

    位操作

      GETBIT key offset

      SETBIT key offset value

      BITCOUNT key [start] [end]

      BITOP operation destkey key [key...]              BITOP命令支持的运行操作有AND、OR、XOR和NOT

    eg:  GETBIT str 2     ,

        SETBIT str 1 0  

        BITCOUNT str

    散列类型(hash):

      HSET key field value

      HGET key field

      HMSET key field value [field value...]

      HMGET key field [field..]

      HGETALL key

    判断字段是否存在:

      HEXISTS key field

    当字段不存在时赋值:

      HSETNX key field value

    增加数字

      HINCRBY key field increment

    删除字段

      HDEL key field [field....]

    只获取字段名

      HKEYS key

    只获取字段值

      HVALS key

    列表类型(list):存储一个有序的字符串列表,常用的操作是向两端添加元素,或者获得列表的某一个片段,内部是用双向链表(double linked list)实现,添加元素为:O(1)

    向列表两端增加元素

      LPUSH key value  [value...]

      RPUSH key value [value...]

    从列表两端弹出元素

      LPOP key

      RPOP key

    获取列表片段

      LRANGE key start end 

      eg:  LRANGE list 0 -1       =============> 0:表示左边第一个元素       -1:表示右边第一个元素

    删除列表中指定的值

      LREM key count value    ===========> LREM命令会删除表中前count个值为value的元素,返回实际删除元素的个数,

      当count>0时,LREM从列表左边开始删除前count个值为value的元素

      当count<0时,LREM从列表右边边开始删除前count个值为value的元素

      当count=0时,LREM从列表删除所有值为value的元素

    获得/设置指定索引的元素值 

      LINDEX key index

      LSET key index value

    只保留列表指定片段

      LTRIM key start end

    向列表中插入元素

      LINSERT key BEFORE|AFTER pivot value

     

    将元素从一个列表转到另一个列表

      RPOPLPUSH source  destination

    集合类型:--==============》集合中的每个元素都不同,且没有序,Set可以存储至多 232-1

      

    增加和删除元素

      SADD key member [member...]

      SREM key member[member...]

    获取所有元素

      SMEMBERS key

    判断一个元素是否在集合中

      SISMEMBER key member

    集合间运算

      SDIFF  key [key...]    ===========>差集   A-B

      SINTER key [key...]    ===========>交际 A^B

      SUNION key [key...]    ===========>并集 AUB

    eg:  SINTER seta setb setc

    获得集合中元素个数

      SCARD key

    进行集合运算并将结果储存

      SDIFFSTORE  destination  key [key..]

      SINTERSTORE  destination  key [key..]

      SUNIONSTORE  destination  key [key..]

    随机获取集合中的元素

      SRANDMEMBER  key

      SRANDMEMBER  key  count

      

    从集合中弹出一个元素

      SPOP key

    有序集合类型 (sorted set):其中的每个元素都关联一个分数,使得我们不仅可以完成插入,删除和判断元素是否存在等集合类型

      

      

    增加元素

      ZADD key source member [source member]

      eg:   ZADD scoreboard 25 jack

    获得元素的分数

      ZSCORE key member  

      eg:  ZSCORE scoreboard jack

    获得排名在某个范围的元素列表

      ZRANGE key start end [WITHSCORES]

    获取指定分数范围的元素

      ZRANGEBYSCORE key min max 

    增加某个元素的分数

      ZINCRBY key increment member 

    获得集合中元素的数量

      ZCARD key

    获取指定分数范围内的元素的个数

      ZCOUNT key min max

    删除一个或多个元素

      ZREM key member [member...]

    按照排名范围删除元素

      ZREMRANGEBYRANK key min max         ==========> min和max表示下表位置

      eg:  ZREMRANGEBYRANK scoreboard 0 1    

    按照分数范围删除元素

      ZREMRANGEBYSCORE key min max

    获得元素的排名

      ZRANK key member     ===========> 分数从小到大的顺序获得指定的元素的排名,最小的元素为0

      eg:   ZRANK scoreboard peter

      ZREVRANK key member

      eg:  ZREVRANK scoreboard peter  ============>与ZRANK相反,从大到小 

    递增数字

      incr key

    增长指定的整数

      INCRBY key 5     --------------> key增加5

    增加指定浮点数

      INCRBYFLOAT key 5.5   ----------------》 key增加5.5

    减小指定的整数

      DECR key 

      DECRBY  key  5   -------》key减小5

      

  • 相关阅读:
    nyoj 420
    nyoj 46 最少乘法次数
    ACM退役贴
    nyoj 187 快速查找素数
    多校4题目之Trouble
    nyoj 56 阶乘因式分解(一)
    nyoj 70 阶乘因式分解(二)
    nyoj 151 Biorhythms
    nyoj 97 兄弟郊游问题
    多校十 hdoj4393 Throw nails
  • 原文地址:https://www.cnblogs.com/kaishi/p/7246725.html
Copyright © 2011-2022 走看看