美文网首页
redis和rejson的安装与使用

redis和rejson的安装与使用

作者: 李二狗的星球 | 来源:发表于2018-07-27 08:58 被阅读0次

    1.首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载稳定版4.0.即可。

    2.下载完成后解压并make

    $ tar xzf redis-3.0.1.tar.gz

    $ cd redis-3.0.1

    $ make

    #直接make 编译

    sudo make install

    ===================================

    到此安装完成了redis。

    3.执行redis-server 可以看到redis服务界面,这是在前台运行的界面

    4.通过设置redis.conf 可让redis在后台运行

    在文件包下找到redis.conf文件,修改文件配置,将daemonize属性改为yes(表明需要在后台运行)

    5.再次启动redis服务,并指定启动服务配置文件

    redis-server ./redis.conf服务在后台运行了

    6.关闭redis后台运行

    redis-server ./redis.conf启动服务端

    redis-cli 启动redis客户端

    pkill redis-server 关闭redis服务端

    redis-cli shutdown 关闭redis客户端

    netstat -tunpl|grep 6379 查看redis 默认端口号6379占用情况

    ==================================

    7.redis客户端环境下执行info,查看redis情况

    =====================================

    8.安装redis可视化工具:

    https://java-er.com/blog/redis-tools-windows/

    github-doc:http://docs.redisdesktop.com/en/latest/install/#build-from-source

    1)git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 0.9 rdm && cd ./rdm

    2)cd src/

    3)./configure

    4)source /opt/qt59/bin/qt59-env.sh && qmake && make && sudo make install

    5)cd /usr/share/redis-desktop-manager/bin

    6)sudo mv qt.conf qt.backup

    ==============================================

    9.redis-cli指令:

    redis有16个数据库,不可自定义添加

    0) 查看keys个数

    keys *      // 查看所有keys

    keys prefix_*    // 查看前缀为"prefix_"的所有keys

    flushdb  // 清除当前数据库的所有keys

    flushall    // 清除所有数据库的所有keys

    1)对value操作的命令

    exists (key):确认一个key是否存在

    del (key):删除一个key

    type (key):返回值的类型

    keys (pattern):返回满足给定pattern的所有key

    randomkey:随机返回key空间的一个

    keyrename (oldname, newname):重命名key

    dbsize :返回当前数据库中key的数目

    expire:设定一个key的活动时间(s)

    ttl:获得一个key的活动时间

    select(index):按索引查询

    move (key, dbindex):移动当前数据库中的key到dbindex数据库

    flushdb:删除当前选择数据库中的所有key

    flushall:删除所有数据库中的所有key

    2)String

    set (key, value):给数据库中名称为key的string赋予值value

    get (key):返回数据库中名称为key的string的value

    getset (key, value):给名称为key的string赋予上一次的value

    mget (key1, key2,…, key N):返回库中多个string的value

    setnx (key, value):添加string,名称为key,值为value

    setex (key, time, value):向库中添加string,设定过期时间time

    mset (key N, value N):批量设置多个string的值

    msetnx (key N, value N):如果所有名称为key i的string都不存在

    incr (key):名称为key的string增1操作

    incrby (key, integer):名称为key的string增加integer

    decr (key):名称为key的string减1操作

    decrby (key, integer):名称为key的string减少integer

    append (key, value):名称为key的string的值附加value

    substr (key, start, end):返回名称为key的string的value的子串

    3)List

    rpush (key, value):在名称为key的list尾添加一个值为value的元素

    lpush (key, value):在名称为key的list头添加一个值为value的 元素

    llen (key):返回名称为key的list的长度

    lrange (key, start, end):返回名称为key的list中start至end之间的元素

    ltrim (key, start, end):截取名称为key的list

    lindex (key, index):返回名称为key的list中index位置的元素

    lset (key, index, value):给名称为key的list中index位置的元素赋值

    lrem (key, count, value):删除count个key的list中值为value的元素

    lpop (key):返回并删除名称为key的list中的首元素

    rpop (key):返回并删除名称为key的list中的尾元素

    blpop (key1, key2,… key N, timeout):lpop命令的block版本。

    brpop (key1, key2,… key N, timeout):rpop的block版本。

    rpoplpush (srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

    4)Set

    sadd(key, member):向名称为key的set中添加元素member

    srem(key, member) :删除名称为key的set中的元素member

    spop(key) :随机返回并删除名称为key的set中一个元素

    smove(srckey, dstkey, member) :移到集合元素

    scard(key) :返回名称为key的set的基数

    sismember(key, member) :member是否是名称为key的set的元素

    sinter(key1, key2,…key N) :求交集

    sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合

    sunion(key1, (keys)) :求并集

    sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合

    sdiff(key1, (keys)) :求差集

    sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合

    smembers(key) :返回名称为key的set的所有元素

    srandmember(key) :随机返回名称为key的set的一个元素

    5)Hash

    hset(key, field, value):向名称为key的hash中添加元素field

    hget(key, field):返回名称为key的hash中field对应的value

    hmget(key, (fields)):返回名称为key的hash中field i对应的value

    hmset(key, (fields)):向名称为key的hash中添加元素field

    hincrby(key, field, integer):将名称为key的hash中field的value增加integer

    hexists(key, field):名称为key的hash中是否存在键为field的域

    hdel(key, field):删除名称为key的hash中键为field的域

    hlen(key):返回名称为key的hash中元素个数

    hkeys(key):返回名称为key的hash中所有键

    hvals(key):返回名称为key的hash中所有键对应的value

    hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

    ======================================================================

    ======================================================================

    ======================================================================

    rejson安装使用:

    https://baijiahao.baidu.com/s?id=1572254524357246&wfr=spider&for=pc

    1.ReJSON库:git clone https://github.com/RedisLabsModules/rejson.git

    2.build-essential 包:apt-get install build-essential

    3.rejson文件下make

    4.得到编译后的模块库文件在src/rejson.so

    5.在redis.conf文件下加载module

    loadmodule /path/to/module/rejson.so

    用rejson.so文件的真实路径替换上面的这行的/path/to/module/rejson.so

    6.重启redis服务端客户端

    127.0.0.1:6379> JSON.SET foo . '"bar"'

    返回ok则module安装成功

    ==============================================================

    rejson的使用:

    127.0.0.1:6379> JSON.SET foo . '"bar"'

    OK

    127.0.0.1:6379> JSON.GET foo

    "\"bar\""

    127.0.0.1:6379> JSON.TYPE foo .

    string

    /////////////////////////////////////////

    127.0.0.1:6379> JSON.STRLEN foo .

    3

    127.0.0.1:6379> JSON.STRAPPEND foo . '"baz"'          //追加字符串

    6

    127.0.0.1:6379> JSON.GET foo

    "\"barbaz\""

    /////////////////////////////////////////////

    127.0.0.1:6379> JSON.SET num . 0

    OK

    127.0.0.1:6379> JSON.NUMINCRBY num . 1                //加法

    "1"

    127.0.0.1:6379> JSON.NUMINCRBY num . 1.5

    "2.5"

    127.0.0.1:6379> JSON.NUMINCRBY num . -0.75            //减法

    "1.75"

    127.0.0.1:6379> JSON.NUMMULTBY num . 24                //乘法

    "42"

    ////////////======array, object=========////////////////////////////////

    127.0.0.1:6379> JSON.SET amoreinterestingexample . '[ true, { "answer": 42 }, null ]'

    OK

    127.0.0.1:6379> JSON.GET amoreinterestingexample

    "[true,{\"answer\":42},null]"

    127.0.0.1:6379> JSON.GET amoreinterestingexample [1].answer     

    "42"

    127.0.0.1:6379> JSON.DEL amoreinterestingexample [-1]

    1

    127.0.0.1:6379> JSON.GET amoreinterestingexample

    "[true,{\"answer\":42}]"

    /////////======array, object=========/////////////

    127.0.0.1:6379> JSON.SET arr . []

    OK

    127.0.0.1:6379> JSON.ARRAPPEND arr . 0

    (integer) 1

    127.0.0.1:6379> JSON.GET arr

    "[0]"

    127.0.0.1:6379> JSON.ARRINSERT arr . 0 -2 -1    //从左向右数第0个位置开始追加-2和-1

    (integer) 3

    127.0.0.1:6379> JSON.GET arr

    "[-2,-1,0]"

    127.0.0.1:6379> JSON.ARRTRIM arr . 1 2        //从左向右数第一个位置开始保存两个数字,其余删除

    2

    127.0.0.1:6379> JSON.GET arr

    "[-1,0]"

    127.0.0.1:6379> JSON.ARRPOP arr              //从右向左返回第一个数字并删除

    "0"

    127.0.0.1:6379> JSON.ARRPOP arr

    "-1"

    127.0.0.1:6379> JSON.ARRPOP arr

    (nil)

    /////////======array, object=========/////////////

    127.0.0.1:6379> JSON.SET obj . '{"name":"Leonard Cohen","lastSeen":1478476800,"loggedOut": true}'

    OK

    127.0.0.1:6379> JSON.OBJLEN obj .

    (integer) 3

    127.0.0.1:6379> JSON.OBJKEYS obj .

    1) "name"

    2) "lastSeen"

    3) "loggedOut"

    ************************************************

    ************************************************

    第三方插件redis-rejson对应的rejson的支持的指令操作,所有的‘.’均替换为‘_’,如json.get替换为json_get

    "json.del key",删除key

    "json.get key",获取key的value

    "json.mget", Returns the values at path from multiple keys.

    "json.set key . value",插入数据

    "json.type key .xxx",返回xxx类型

    "json.numincrby key . num",加法

    "json.nummultby key . num", 乘法

    "json.strappend key . string",追加字符串

    "json.strlen key .xxx",返回xxx长度

    "json.arrappend key . 1",向数组里插入内容

    "json.arrindex", Search for the first occurrence of a scalar JSON value in an array.

    "json.arrinsert", 数组追加

    "json.arrlen", 数组长度

    "json.arrpop", 数组删除

    "json.arrtrim", 数组删除

    "json.objkeys key .",返回对象key的所有key

    "json.objlen key .",返回对象key的key数量

    "json.debug",

    "json.forget",

    "json.resp"

    相关文章

      网友评论

          本文标题:redis和rejson的安装与使用

          本文链接:https://www.haomeiwen.com/subject/ryhwmftx.html