赞
踩
redis属于键值对nosql数据库,与文档相关的MongoDB,大数据领域的HBase,了解图数据库Neo4j。
访问官网,点击首页的download it即可下载,Windows要去github上下载,但是已经停更很久了,redis官网不建议使用Windows系统,存在兼容问题。
redis GitHub Windows下载安装包
点击官网这里,在介绍中有说不支持Windows,但是Windows官方在支持redis,可以点击这个Windows支持的版本去GitHub上下载安装包。在GitHub上点击Releases,选择对应版本下载即可。
解压安装包,解压后如下图,可以发现这个包大小只有5M
启动redis服务,双击redis-server.exe
,如下图
使用redis客户端连接服务,双击redis-cli.exe,发现黑窗口127.0.0.1:6379,表示已经连接,输入命令ping,响应pang表示连接成功。
下载安装包,访问官网,点击download it即可。中文网和英文网的版本有点区别
使用xftp或其他软件将安装包上传至服务器
移动压缩包到opt目录下
使用命令tar -zxvf redis-5.0.8.tar.gz
解压,解压后如图,这里需要注意的是这个redis.conf这个文件和sentinel.conf,这两个一个是redis-server的配置文件,另一个是哨兵模式的配置文件
安装gcc环境,执行命令yum install gcc-c++
使用命令gcc -v
查看是否安装成功
make
命令加载依赖库,等待一段时间,大概几分钟。完成之后再执行make命令,就会发现很快。完成之后就会发现redis已经安装成功,再执行make install(可以不执行,只是为了确认),就会发现都已经安装成功了。
redis的默认安装路径/usr/local/bin
,安装完成后在该目录下可以查看,文件与Windows是一样的,如图,下图中的redisredis-sentinel就是哨兵,哨兵是一个单独的进程。
将解压后的文件内redis.conf文件拷贝到当前目录下 cp /opt/redis-5.0.8/redis.conf /usr/local/bin
,这样就即保留了原始的配置文件在解压目录中,又可以更改当前目录下的配置文件自定义配置启动redis。
redis默认不是后台启动的,因此需要修改配置
修改配置文件,vim redis.conf,这里需要修改的是usr/local/bin
下的配置文件,
启动redis服务redis-server redis.conf
表示使用该配置文件启动redis服务
使用客户端连接redis服务redis-cli -p 6379
回车后发现连接成功。如图
查看redis进程是否开启
ps -ef|grep redis
关闭redis服务,shutdown命令表示停止服务,exit表示退出。
redis-benchmark 使用命令与redis-server类似,使用redis-benchmark -h 127.0.0.1 -p 6379 ....
测试结果如下:
.\redis-cli.exe -h 192.168.0.113 -p 6379
win10默认不用当前目录命令,因此前面添加.\。exists key
判断某个key是否存在expire key
设置key过期时间,如果设置10秒,则expire key 10
ttl key
查看key还剩多久过期,如果已经过期,则返回-2move key
移除keytype key
判断当前key是什么类型,string还是list等等小提示:使用redis-cli工具连接服务时,输入的命令会有提示
append key value
在字符串后面追加value,返回数字,如果key不存在,就相当于set keystrlen key
返回key的值的字符串长度incr key
给这个key的值+1。如果这个key不存在,则相当于set key 1.如果这个key的值不是一个数字,则返回 ERR value is not an integer or out of range。value不是一个数字或超出范围,范围是多大我也不知道,应该是integer的取值范围2147483648。decr key
给这个key减一incrby key 10
给这个key设置每次增加10,设置步长,指定增量decrby key 5
给这个key设置每次自减5.getrange key 0 3
获取key对应字符串的部分,相当于java的substring,如果是getranger key 0 -1
则表示获取key的所有=GET KEY,而不是截取的部分setrange key 2 xx
将字符串中下标为2的值替换为xx,例如set key1 abcde
setrange key1 2 xx
get key1
返回abxxcd。相当于java的replacesetex key second value
表示设置后多少秒过期,seconds表示过期时间。ex就是expiresetnx key value
表示如果这个key不存在才设置,如果存在则不设置。nx就是 not existmset k1 v1 k2 v2 k3 v3 ...
表示同时设置多个键值对mget k1 k2 k3
同时获取多个msetnx k1 v1 k2 v2 k3 v3 k4 v4..
如果不存在则设置,如果key有一个存在的,则所有的都设置不成功。这是一个原子性的操作,redis的事务是不保证原子性操作的,但是msetnx是保证原子性操作的。
举例:
当我们要在redis中保存一个用户的信息的时候,一般情况下是将user对象转为json串保存到redis中
mset user:1 {name:zhangsan,age:10...}
,表示设置id为1的用户信息是一个json,同时也可以mset user:1:name zhangsan user:1:age 10 ...
这相当于将这个user的每个属性都分开设置到redis中了。
getset key value
先get 再set,当key不存在时,返回null 并设置这个key和value,当key存在时,返回key的值并用value覆盖之前的valuestring类型的使用场景,value除了可以是字符串还可以是数字,因此可以用到以下场景:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。