Redis数据库命令操做

启动Redis

# redis-cli -v    //查看版本
# redis-server &   //启动服务 &=后台运行
# 建议配置文件启动 redis-server /usr/local/redis/redis.conf 
# redis-cli shutdown   中止服务
# redis-server --port 6380  //指定端口 默认为6379

基本操做

# redis-cli
    >keys *     //查看全部键
    >dbsize     //键总数
    >exists 键值   //查看键是否存在(1存在  0不存在)
    >set hello word  设置键hello   值为word
    >del hello  删除
    >get hello   获取
    >mset a 1 b 2 c 3  批量设置
    >mget a b c 批量获取
    >set hello zkc xx   修改已经存在的hello 为zkc

    >incr 是数值的键   每次加1

    >append hello zkc   值 追加zkc
    >strlen hello   查看字符串长度
    >getset hello redis   设置并返回原值
    >getrange hello 0 b    字符位置以0开始计数  将hello的键值第一个字符改成b
    >getrange hello 0 1    获取hello键值的  第1和2位字符

哈希 (hset key field value)

>hset user:1 name tom    设置
    >hget user:1 name tom    获取
    >hdel user:1 name        删除
    >hlen user:1             计算field个数
    >hmset user:1 name tome age 12  批量设置
    >hexists user:1 name    判断是否存在
    >hkeys user:1  获取全部field
    >hvals user:1  获取全部value
    >hgetall user:1 获取全部field+value

    >hmset hashkey f1 v1 f2 v2
    >object encoding hashkey   
    查看内部编码 field个数小  ziplist  
    当value大于64字节或者field个数超过512 内部编码会变成hashtable

列表

添加
    > rpush listkey c b a    从右往左插入元素

    > lpush list1 c b a       从左往右插入元素
    > lrange listkey 0 -1    从左往右获取列表全部元素 

    > linsert listkey before b java   b前面插入java
    > linsert listkey after b java   b后面插入java
    查
    > lrange listkey 0 -1    从左往右获取列表全部元素 (0为第一位 -1为最后一位)
    > lrange listkey 0 2    从左往右获取列表 第1位到第3位元素

    > lindex listkey -1    获取列表下最后一位的元素(指定索引下标的元素)
    > llen listkey       获取列表长度
    删除
    > lpop listkey    删除左侧
    > rpop listkey    删除右侧
    > lrem listkey 4 a   从左往右删除4个a
    > ltrim listkey 1 3  只保留第2位到第4位的元素
    修改
    > lset listkey 2 pyhton    第三位改为python

    阻塞
    > brpop list:test 3   (timeout=3  客户端3秒后返回) 
    > brpop list:test 0   (会一直阻塞)
    > blpop  (用法同样方向不一样)

集合

集合内操做
    1添加元素
    > sadd key a b c
    返回3  添加了3个元素
    2删除
    > srem key a b ca
    3计算元素个数
    > scard key
    4判断元素在集合内否  在返回1  不在返回0
    >sismember key c
    5随机从集合中返回指定个数元素
    > srandmember key 2
    6从集合中随机弹出删除一个元素
    > spop key
    > smembers key  查看元素已经没有刚刚弹出的
    7获取全部元素
    > smembers key

    集合间操做
    求多个集合的交集
    sinter key key

    求多个集合的并集
    synion key key

    求多个集合的差集
    sdiff key key

    将交集,并集,差集的结果保存
    sinterstore destination key key
    sunionstore destination key key
    sdiffstore destination key key

    内部编码
    1内部元素个数较少为整数时,内部编码为 intset
    > object encoding key    查看内部编码
    2当元素超过512个 内部编码变为 hashtable
    > object encoding key

    给用户添加标签 sadd user:1:tags tag1 tag2  
    删除           srem user:1:tags tag1 tag2
    给标签添加用户 sadd tag1:users user:1 user:3
    删除           srem tag1:users user:1

    有序集合
    添加成员
    zadd key 100 tom 添加用户tom 和他的分数100

    计算成员个数
    zcard key

    计算成员排名 (从0开始计算)
    zrank key  低到高
    zrevrank key 高到低 
    删除成员
    zrem key tom
    增长成员分数
    zincrby key 9 tom  

    指定排名范围的成员
    zrange key 0 2 withscores   低到高 1-3名 加withscores会返回分数
    zrevrange key 0 2 withscores  高到低

    指定分数范围的成员 (200 +inf   无限大
    zrangebyscore key 200 220 withscores   200-220分的从低到高
    zrevrangebyscore   高到低

    指定分数范围的个数
    zcount key 200 220
    删除指定分数的成员
    zremrangeebyscore key 200 220

    zremrangeebyscore key (250 +inf  删除250分以上的人

事务

> multi   开始
    > ...N条操做
    > exec    结束 (能够用discard代替exec)
相关文章
相关标签/搜索