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"