redis和rejson的安装与使用

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的安装与使用)