redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它经过提供多种键值数据类型来适应不一样场景下的存储需求,目前为止redis支持的键值数据类型以下字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)前端
缓存(数据查询、短链接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过时处理(能够精确到毫秒)linux
下面介绍在CentOS环境下,Redis的安装与部署,redis从3.0版本之后增长了集群功能。 c++
步骤以下:redis
因为Redis是用C语言编写,因此编译时须要gcc,数据库
yum install gcc-c++
经过官网下载 地址:http://download.redis.io/releases/redis-5.0.0.tar.gzvim
或 使用linux wget命令:wget http://download.redis.io/releases/redis-5.0.0.tar.gz后端
把源码包上传到linux服务器,在上传的目录下进行解压centos
tar -zxvf redis-5.0.0.tar.gz
进入解压后的目录进行编译make,指定目录安装make install 如 /usr/local/redis缓存
cd /redis-5.0.0/服务器
make (这里进redis-5.0.0/目录下直接make编译就行了)
make install PREFIX=/usr/local/redis (指定编译路径)
进入安装目录bin下
cd /usr/local/redis/bin
此时的目录结构是这样的
1.前端模式启动
/usr/local/redis/bin/redis-server
或 cd /usr/local/redis/bin 运行 ./redis-server
前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,故不推荐使用此方法。
2.后端模式启动
1)从redis的源码目录中复制redis.conf到redis的安装目录bin下。
cp redis.conf /usr/local/redis/bin
2)修改配置文件 (是否后台启动)
vim /usr/local/redis/bin/redis.conf
找到 daemonize 按i 进入编辑模式 把no 改成 yes
按ESC + :wq 保存退出
执行以下命令启动redis:
cd /usr/local/redis/bin
./redis-server ./redis.conf
3.查看是否启动成功
ps aux|grep redis
redis默认端口为 6379,可更改redis.conf文件,修改端口号
强行终止redis进程可能会致使redis持久化数据丢失。
正确中止Redis的方式应该是向Redis发送SHUTDOWN命令,
命令为:
cd /usr/local/redis
./bin/redis-cli shutdown
强行终止redis
pkill redis-server
方法一:
1) vim /etc/init.d/redis 编写脚本 (输入下面的代码)
# chkconfig: 2345 10 90 # description: Start and Stop redis PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 #实际环境而定 EXEC=/usr/local/redis/bin/redis-server #实际环境而定 REDIS_CLI=/usr/local/redis/bin/redis-cli #实际环境而定 PIDFILE=/var/run/redis.pid CONF="/usr/local/redis/bin/redis.conf" #实际环境而定 case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed." else echo "Starting Redis server..." $EXEC $CONF fi if [ "$?"="0" ] then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE exists, process is not running." else PID=$(cat $PIDFILE) echo "Stopping..." $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x $PIDFILE ] do echo "Waiting for Redis to shutdown..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1 esac
2) 配置开机启动
chmod 755 /etc/init.d/redis #设置文件redis的权限,让Linux能够执行 chkconfig redis on #开启服务自启动
chkconfig --list #查看全部注册的脚本文件
service redis start #启动
service redis stop #关闭redis
3) 检测是否成功
reboot #重启--若是是centos6.5学过来的,init 0与init 6同样在centos7适用
ps aux|grep redis #查看redis进程是否存在
方法二:
centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提升系统的启动速度。
Systemd服务文件以.service结尾,好比如今要创建redis为开机启动,若是用yum install命令安装的,yum命令会自动建立redis.service文件,直接用命令systemcel enable redis.service设置开机启动便可
1.在系统服务目录里建立redis.service文件
vim /etc/systemd/system/redis.service
写入如下内容:
[Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
注意:ExecStart配置成本身的路径
配置描述:
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为中止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、中止命令所有要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
2. 测试并加入开机自启
先关闭redis-server
systemctl stop redis.service
开启redis-server
systemctl start redis.service #若是服务是开启状态,使用此命令会启动失败。
3. 开启成功,将服务加入开机自启
systemctl enable redis.service #注意后面不能跟空格
4. reboot #重启
5. 查看服务运行状态:systemctl status redis.service
6. 所有命令
systemctl start redis.service #启动redis服务
systemctl enable redis.service #设置开机自启动
systemctl disable redis.service #中止开机自启动
systemctl status redis.service #查看服务当前状态
systemctl restart redis.service #从新启动服务
systemctl list-units --type=service #查看全部已启动的服务
引入jar包:
代码:
public class JedisTest { @Test public void testJedisSingle() { //建立一个jedis的对象。 Jedis jedis = new Jedis("172.20.10.7", 6379); //调用jedis对象的方法,方法名称和redis的命令一致。 jedis.set("key1", "jedis test"); String str = jedis.get("key1"); System.out.println(str); //关闭jedis。 jedis.close(); } /** * 使用链接池 */ @Test public void testJedisPool() { //建立jedis链接池 JedisPool pool = new JedisPool("172.20.10.7", 6379); //从链接池中得到Jedis对象 Jedis jedis = pool.getResource(); String str = jedis.get("key1"); System.out.println(str); //关闭jedis对象 jedis.close(); pool.close(); } }
至此redis安装配置完毕。
good luck !