zoukankan      html  css  js  c++  java
  • 命令行下 初识 redis 入门教程

    1. redis-cli 命令行进入redis

    set,get,

    setex,给键值设置过期时间 setex name 10 DOG //设置name键 为 DOG 10秒后过期。

    setnx,判断值是否存在,如果存在就不更新键值。如果不存在,则赋值。 (nx :not exist)

    getset,设置一个新值,并返回key的旧值。

    mset,批量设置键值。

    msetnx,

    mget,

    setrange,替换值串部分。 客户端测试:

    redis 127.0.0.1:6379> set email test@gmail.com
    OK
    redis 127.0.0.1:6379> setrange email 5 qq.com
    (integer) 14
    redis 127.0.0.1:6379> get email
    "test@qq.comcom"
    redis 127.0.0.1:6379> set email test@qq.com
    OK
    redis 127.0.0.1:6379> get email
    "test@qq.com"
    redis 127.0.0.1:6379> setrange email 5 gmail.com
    (integer) 14
    redis 127.0.0.1:6379> get email
    "test@gmail.com"//简而言之,替换部分如果未超过原来字符串,则原本未被替换的字符串被保留下来。  如果被替换部分长度超过原来,则显而易见。

    getrange,

    redis 127.0.0.1:6379> set key1 123456789
    OK
    redis 127.0.0.1:6379> getrange key1 0 3
    "1234"

    incr,自增1,  如果键不存在,第一次自增相当于赋值  (decr

    redis 127.0.0.1:6379> set key1 12
    OK
    redis 127.0.0.1:6379> incr key1
    (integer) 13

    incrby,增加 或 减少  (decrby

    redis 127.0.0.1:6379> set key1 5
    OK
    redis 127.0.0.1:6379> incrby key1 -3
    (integer) 2

    append, 值后 拼接一个新字符串。 返回新串长度

    strlen,

    2. -------------------h : hash

    这里截图2个, 说明普通键值对   与  hash key->value区别:  

    hset,hget,hdel,hmset,hmget, hincr, hincrby,

    hlen,返回hash  field的个数

    hexists, 

    redis 127.0.0.1:6379> hexists user:001 name
    (integer) 1

    hkeys,返回hash表  所有   field

    hvals,返回hash表  所有  

    hgetall,返回hash表  所有  field

     3.list

    -------------------------------- 头

    |                |

    |                |            

    |                |

    |                |

    --------------------------------尾

    lpush:从list开始入数据

    rpush:从list开始入数据

    redis 127.0.0.1:6379> lpush list1 wo
    (integer) 1
    redis 127.0.0.1:6379> lpush list1 cao
    (integer) 2
    redis 127.0.0.1:6379> lpush list1 haha
    (integer) 3
    redis 127.0.0.1:6379> lrange list1 0 -1//从头  = >  尾  依次是.
    1) "haha"//头
    2) "cao"
    3) "wo"//尾
    
    redis 127.0.0.1:6379> rpush list1 wo
    (integer) 1
    redis 127.0.0.1:6379> rpush list1 cao
    (integer) 2
    redis 127.0.0.1:6379> rpush list1 haha
    (integer) 3
    redis 127.0.0.1:6379> lrange list1 0 -1
    1) "wo"
    2) "cao"
    3) "haha"

    linsert: 在堆栈数据中间   插入一个数据, 实例:在1,3之间插入2

    redis 127.0.0.1:6379> del list1
    (integer) 1
    redis 127.0.0.1:6379> lpush list1 1
    (integer) 1
    redis 127.0.0.1:6379> lpush list1 3
    (integer) 2
    redis 127.0.0.1:6379> linsert list1 before 1 2
    (integer) 3
    redis 127.0.0.1:6379> lrange list1 0 -1
    1) "3"
    2) "2"
    3) "1"

    lset,对指定下标元素  进行赋值

    lrem,删除相同对应value元素.  lrem list1 2 one   //删除list1中  2个  one 元素

    ltrim,保留指定key范围内的数据. 

    redis 127.0.0.1:6379> lpush list1 one
    (integer) 1
    redis 127.0.0.1:6379> lpush list1 two
    (integer) 2
    redis 127.0.0.1:6379> lpush list1 three
    (integer) 3
    redis 127.0.0.1:6379> ltrim list1 1 -1
    OK
    redis 127.0.0.1:6379> lrange list1 0 -1
    1) "two"
    2) "one"

    lpop:从头 弹出一个 元素.

    rpop:从尾 弹出一个 元素.

    rpoplpush list1 list2: 从list1尾部弹出元素 A  压入到 list2的头部

    lindex : 返回list中 小标为 index的 元素值。  // lindex list1 0. 

    llen:

    4.sets集合:无序集合   无重复元素

    sadd: sadd set1 hello //    sadd set1 world  //sadd 不可以添加相同元素。 添加成功返回1

    smembers:查看集合所有成员

    srem: 删除成员

    spop:随机弹出一个元素

    sdiff:返回所有给定key与第一个key的差集

    redis 127.0.0.1:6379> sadd set1 one
    (integer) 1
    redis 127.0.0.1:6379> sadd set1 two
    (integer) 1
    redis 127.0.0.1:6379> sadd set2 one
    (integer) 1
    redis 127.0.0.1:6379> sadd set2 three
    (integer) 1
    redis 127.0.0.1:6379> sdiff set1 set2
    1) "two"

    sdiffstore:将差集返回的 集合    存储到  另一个集合中。   sdiffstore set3 set1 set2 //返回set3的差集

    redis> SMEMBERS peter's_movies
    1) "bet man"
    2) "start war"
    3) "2012"
    
    redis> SMEMBERS joe's_movies
    1) "hi, lady"
    2) "Fast Five"
    3) "2012"
    
    redis> SDIFF peter's_movies joe's_movies
    1) "bet man"
    2) "start war"
    View Code

    sinter:集合间取交集

    sinterstore:

    sunion: 返回  并集

    sunionstore:

    smove:从第一个集合从  移除  指定key  并且  添加到  第二个集合中

    redis 127.0.0.1:6379> smove set1 set2 two
    (integer) 1
    redis 127.0.0.1:6379> smembers set2
    1) "three"
    2) "two"
    3) "one"

    scard:查看集合元素个数

    sismember: 判断 某元素 是否为  集合 当中  元素

    srandmember:从集合中随机返回一个元素

    5.sorted sets有序集合 zset

    zadd:

    zrange:

    zrem:

    redis 127.0.0.1:6379> zadd zset1 1 h
    (integer) 1
    redis 127.0.0.1:6379> zadd zset1 2 i
    (integer) 1
    redis 127.0.0.1:6379> zadd zset1 3 i//更新序号
    (integer) 0
    redis 127.0.0.1:6379> zrange zset1 0 -1
    1) "h"
    2) "i"
    redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "h"
    2) "1"
    3) "i"
    4) "3"
    redis 127.0.0.1:6379> zrem zset1 i
    (integer) 1
    redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "h"
    2) "1"

    zincrby:集合中添加某元素,如果此元素不存在则直接添加进去。 如果存在,则序号自增incr,值不变。

    redis 127.0.0.1:6379> zincrby zset1 2 h
    "3"
    redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "h"
    2) "3"
    redis 127.0.0.1:6379> zincrby zset1 1 i
    "1"
    redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "i"
    2) "1"
    3) "h"
    4) "3"

    zrank:返回集合 下标号

    redis 127.0.0.1:6379> zrange zset1 0 -1
    1) "i"//第0个元素
    2) "h"//第1个元素
    redis 127.0.0.1:6379> zrank zset1 i
    (integer) 0
    redis 127.0.0.1:6379> zrank zset1 h
    (integer) 1

    zrevrank:返回集合下标。  逆序排序后  得到指定元素的下标。   与zrank相反

    zrevrange:降序排序

    zrangebyscore:给定score范围内的元素

    zscount:返回给定score区间内   元素个数

    redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "i"
    2) "1"
    3) "twooo"
    4) "2"
    5) "h"
    6) "3"
    7) "teno"
    8) "6"
    redis 127.0.0.1:6379> zrangebyscore zset1 2 9
    1) "twooo"
    2) "h"
    3) "teno"
    redis 127.0.0.1:6379> zcount zset1 2 6// 区间是[]    包括左右两边
    (integer) 3

    zcard: 返回集合中所有元素个数

    zremrangebyrank : 删除指定 索引 区间内的  元素
    redis 127.0.0.1:6379> zrange zset1 0 -1
    1) "i"
    2) "twooo"
    3) "h"
    4) "teno"
    redis 127.0.0.1:6379> zremrangebyrank zset1 0 1
    (integer) 2
    redis 127.0.0.1:6379> zrange zset1 0 -1
    1) "h"
    2) "teno"

    zremrangebyscore: 删除指定 score 区间内的 元素

    6 :服务端:键值命令

    keys *  keys s*//模糊匹配keys

    exists set1  //

    del set1

    expire  //设置现有的键 的过期时间, 过期后 则被自动删除

    select  //选择数据库, redis-cli默认进去数据库0 , select 0 。 redis数据库有 0 - 15

    move  将当前数据库中的key 移动到其他数据库中  move key1 2 //将当前数据库键key1 移动到数据库2中

    persist  取消设置的过期时间

    randomkey  随机返回当前数据库中key

    rename

    type  返回键 的数据类型

    echo  直接在命令框 输出

    dbsize  返回当前数据库  键    个数

    info  返回redis服务器   相关信息

    config get * //返回配置信息

    flushdb  //删除当前数据库  所有键

    flushall  //删除0-15数据库所有  键

    问题1:界面版

    php WEB版 在线管理 redis,动态监控数据,PHPRedisAdmin 

     https://github.com/ErikDubbelboer/phpRedisAdmin 下载 .zip 

    解压到根目录下

    出现HTTP 500错误,查看日志error.log

    [Wed Jul 03 10:20:28 2013] [error] [client XX.XXX.XX] PHP Warning: require_once(/var/www/phpRedisAdmin-master/predis/autoload.php): failed to open stream: No such file or directory in /var/www/phpRedisAdmin-master/includes/common.inc.php on line 35

    还需要下载predis到PHPRedisAdmin 根目录下。

    https://github.com/nrk/predis 下载.zip 解压

    直接访问管理redis数据。

    -----------

    直接下载总结好的,加压到网站根目录直接访问就可以使用。 下载地址

  • 相关阅读:
    delphi 多线程定时执行程序如何写
    delphi 把多个线程的请求阻塞到另一个线程 TElegantThread
    delphi 对TThread扩充TSimpleThread
    Delphi 线程Timer (TThreadTimer)
    vue-01-插值表达式、事件修饰符
    ORA-12516:监听程序找不到服务协议堆栈要求的可用处理程序(转)
    Io 异常: The Network Adapter could not establish the connection(转)
    "Cannot read property 'xxx' of undefined" js问题之某属性未定义
    数据库用日期作为条件来查询数据
    Docker Registry配置客户端
  • 原文地址:https://www.cnblogs.com/qunshu/p/3170598.html
Copyright © 2011-2022 走看看