官方网站:https://redis.io/
一:基础知识:
1、开源,BSD协议,C语言编写,基于内存且支持持久化。高性能的Key-value的NoSql(非关系型的数据库)数据库;
2、支持字符串,散列(hash),列表(list),集合(Set),有序集合(sorted sets),范围查询,地理空间索引半径查询;
3、支持丰富的主流语言客户端:Java,C,Python,Ruby,JavaScript,PHP,Perl等;
4、用途:缓存,数据库(微博),消息中间件(队列);
5、MongoDB可进行文档存储,Neo4J可进行图片存储;
6、redis不适合保存大数据,主要用于解决高并发的问题,存在丢数据的可能;
7、redis为单线程的,所以每个命令的内容大小不能太大。
二:安装
注释:本步骤支持redis3.0及3.0以下版本的安装。redis3.0版本安装请参考Redis3.0版简洁安装,步骤更简单。
1、解压安装包redis-3.0.0.gar.gz
[root@linhaijing tool]# tar zxf redis-3.0.0.tar.gz
2、因为Redis为C语言编写,所以先安装gcc编译环境(需要在联网情况下)
##安装gcc和tcl命令
[root@linhaijing tool]# yum install gcc tcl -y
3、编译,调用的是redis目录下makefile文件:
[root@linhaijing redis-3.0.0]# make
4、安装,如果安装目录不存在会自动创建:
[root@linhaijing redis-3.0.0]# make PREFIX=/myFile/programFiles/redis-3.0 install
5、进入刚才的安装目录:/myFile/programFiles/redis-3.0/bin,有如下显示表示安装成功。
redis-cli表示Redis客户端,redis-server表示Redis服务端
6、(非必须)如果是Redis3.0版本之前版本,需要执行此操作:
返回tool/redis-3.0.0/src下,拷贝redis-sentinel到新建redis-3.0/bin目录下:
[root@linhaijing src]# cp redis-sentinel /myFile/programFiles/redis-3.0/bin
redis-sentinel为可执行的二进制文件,通过 file redis-sentinel命令可查看说明
三、配置环境变量:
将/myFile/programFiles/redis-3.0/bin目录配置到环境变量中去,编辑bash_profile文件:
vim ~/.bash_profile
如果提示vim没安装,可执行如下语句:
yum install -y vim
编辑bash_profile文件如下:
PATH=$PATH:$HOME/bin
export REDIS_HOME=/myFile/programFiles/redis-3.0
export PATH=$PATH:$REDIS_HOME/bin
export PATH
编辑完成,退出后执行如下命令,让修改内容生效:
[root@linhaijing src]# source ~/.bash_profile
测试是否环境变量配置成功:
[root@linhaijing ~]# redis-server --help
会有相关提示,表示成功:
四、将Redis做成服务
进入redis解压包utils目录下 , cd myFile/tool/redis-3.0.0/utils,找到intall_server.sh命令,执行如下语句:
[root@linhaijing utils]# ./install_server.sh
一直按回车即可,出现如下内容,表示做成服务成功:
接着,执行如下命令,修改redis_6379
[root@linhaijing utils]# cd /etc/init.d
[root@linhaijing init.d]# mv redis_6379 redisd
注意:做成服务后,如需修改配置文件,需进入etc/redis/6379.conf; 不能修改源码包的配置文件
说明:在将redis做成服务步骤中,redis自动将配置文件放置在该目录下。
参考该截图:
五、启动redis,输入如下命令:
[root@linhaijing ~]# service redisd start
六、测试:
执行查看端口命令,出现6379端 口,表示服务安装成功:
[root@linhaijing ~]# ss -tanl
查看客户端帮助:
[root@linhaijing ~]# redis-cli --help
七、使用redis
进入redis客户端:
[root@linhaijing redis]# redis-cli
八、 redis的数据库
redis默认有16个数据库,在本文第7步中讲解的配置文件etc/redis/6379.conf中可以查看和修改
进入redis时,默认是第0个数据库,如果要切换数据库,可执行如下命令:
127.0.0.1:6379> select 1
或者,先退出,再直接进入第几个数据库
127.0.0.1:6379[1]> exit
[root@linhaijing redis]# redis-cli -n 15
数据库与数据库之间是隔离的。
九:redis支持的数据类型
***redis支持的数据类型有:list,set,hash,sortedset几种基本的数据类型,并提供相关的操作***
***辅助命令***:
keys * : 可以查看当前所有保存的键
keys a*:查看以a开头的键
keys a???:查看以a开头有四个字符的键
help set :即可获得set命令的解释说明
help:可获得的帮助说明
help @set / help @get : 可以查看set和get相关的所有操作(实用)
flushdb : 清空所有的键, 通过持久化可以恢复
1、字符串相关
注:一个字符串类型的的值最多为512M
1):set命令/get命令
格式:set 键 值
格式:get 键
2):mset命令/mget命令
格式:mset 键 值 键 值 键 值 键 值
格式:mget 键 键 键 键
3):nx xx ex说明
nx表示键不存在,才能存储成功 ; 格式: set 键 值 nx
xx表示键存在,才能存储成功,则覆盖之前的值 ; 格式: set 键 值 xx
ex设置过期时间: set 键 值 ex 10(表示10秒后过期)
使用方法,nil表示空值:
MSETNX有原子性,如果一个不满足,则都插入不进去。(integer)0表示插入失败,1表示成功
4):getset 键 值
得到键原来的值并立即赋予新的值:
5):append 给原来的键的值追加字符串
strlen: 查看字符串的长度