zoukankan      html  css  js  c++  java
  • Redis常用命令汇总

    由于项目中经常会使用Redis作为缓存,所以,在此记录Redis的日常使用操作与基础命令  

    • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
    • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

    redis官网: https://redis.io

    redis中文网: http://www.redis.net.cn  (对于英文不好的同学)

    数据结构包括: 字符串,哈希,列表,集合,有序集合还有发布订阅等

    1. 字符串

    string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

    string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

    string类型是Redis最基本的数据类型,一个键最大能存储512MB。

    redis 127.0.0.1:6379> SET name "redis.net.cn"
    OK
    redis 127.0.0.1:6379> GET name
    "redis.net.cn"

    命令:

        set  key  value   

    2. 哈希

    Redis hash 是一个键值对集合。

    Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 每个 hash 可以存储 232 - 1 键值对(40多亿)

    redis 127.0.0.1:6379> HMSET user:1 username redis.net.cn password redis.net.cn points 200
    OK
    redis 127.0.0.1:6379> HGETALL user:1
    1) "username"
    2) "redis.net.cn"
    3) "password"
    4) "redis.net.cn"
    5) "points"
    6) "200"
    redis 127.0.0.1:6379>

    3.列表

     Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)

    redis 127.0.0.1:6379> lpush redis.net.cn redis
    (integer) 1
    redis 127.0.0.1:6379> lpush redis.net.cn mongodb
    (integer) 2
    redis 127.0.0.1:6379> lpush redis.net.cn rabitmq
    (integer) 3
    redis 127.0.0.1:6379> lrange redis.net.cn 0 10
    1) "rabitmq"
    2) "mongodb"
    3) "redis"
    redis 127.0.0.1:6379>

    4. 集合

    Redis的Set是string类型的无序集合。

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

    redis 127.0.0.1:6379> sadd redis.net.cn redis
    (integer) 1
    redis 127.0.0.1:6379> sadd redis.net.cn mongodb
    (integer) 1
    redis 127.0.0.1:6379> sadd redis.net.cn rabitmq
    (integer) 1
    redis 127.0.0.1:6379> sadd redis.net.cn rabitmq
    (integer) 0
    redis 127.0.0.1:6379> smembers redis.net.cn
     
    1) "rabitmq"
    2) "mongodb"
    3) "redis"

    5.有序集合

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

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

    zset的成员是唯一的,但分数(score)却可以重复。

    redis 127.0.0.1:6379> zadd redis.net.cn 0 redis
    (integer) 1
    redis 127.0.0.1:6379> zadd redis.net.cn 0 mongodb
    (integer) 1
    redis 127.0.0.1:6379> zadd redis.net.cn 0 rabitmq
    (integer) 1
    redis 127.0.0.1:6379> zadd redis.net.cn 0 rabitmq
    (integer) 0
    redis 127.0.0.1:6379> ZRANGEBYSCORE redis.net.cn 0 1000
     
    1) "redis"
    2) "mongodb"
    3) "rabitmq"

      1) 添加有序集合数据

    zadd setName 80 python
    
    zadd setName 90 java
    
    zadd setName 100 php

      2)查看分数

    zscore setName python   // '80'
    
    zscore setName php       // '100'

      3)按照名次查看排行榜

    zrevrange  setName  0  -1  withscores
    
    //0:开始索引位置    -1:结束位置(包含) 获取所有排行的数据
    //withscores 排行并返回分数
    
    > 1) “php”
    > 2) “100> 3) “java”
    > 4) “90> 5) “python”
    > 6) “80

        查看前三名

    zrevrange setName 0 2 withscores
    
    //正常我们都是倒序,我们还可以从低到高排序  使用命令 zrange即可

      4)直接查看排名

    //与zrevrange类似,zrevrank是以分数由高到低的排序返回玩家排名(实际返回的是以0开始的索引),对应的zrank则是以分数由低到高的排序返回排名
    
    zrevrank setName php    //0

      5)  增减排行榜分数

    //有的排行榜是在变更时重新设置玩家的分数,而还有的排行榜则是以增量方式修改玩家分数,增量可正可负。如果执行zincrby时玩家尚不在排行榜中,则认为其原始分数为0,相当于执行zdd。
    
    zincrby setName 15 python //95 返回修改之后的数据

      6) 移除某个玩家

    zrem setName java  // 1

      7)   删除排行榜

    del  setName //1

    6.发布订阅

    7. 批量删除key

    redis-cli -h -p -n 3 keys "*" |xargs redis-cli -h -p -n 3 del
    
    
    
    -n  选择的数据库

    命令练习:  http://try.redis.io/

  • 相关阅读:
    jquery堆栈与队列
    类数组转成数组对象
    python基础教程总结8——特殊方法,属性,迭代器,生成器,八皇后问题
    python基础教程总结7——异常
    python基础教程总结6——类
    python基础教程总结5——函数
    python基础教程总结4—基本语句
    python——动态类型
    python基础教程总结3—字典
    python基础教程总结2——字符串
  • 原文地址:https://www.cnblogs.com/xingxia/p/redis_commands.html
Copyright © 2011-2022 走看看