热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Redislinux安装

Redis安装最新版,整理了一下,参考https:www.cnblogs.comhappywishp10944253.html1.获取redis资源wgethttp:downloa

Redis安装最新版,整理了一下,参考https://www.cnblogs.com/happywish/p/10944253.html

1.获取redis资源

  wget http://download.redis.io/releases/redis-6.0.6.tar.gz

2.解压

  tar xzvf redis-4.0.8.tar.gz

3.安装

  cd redis-6.0.6

  make

  cd src

  make install PREFIX=/usr/local/redis

注:若make出错,可能是gcc版本问题

   

我们来查看一下gcc的版本。


#查看gcc的版本是否在 5.3以上,centos7默认是4.8.5.我这里的就是4.8.5
gcc -v

解决方案:


#升级到 5.3及以上版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash

注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。

如果要长期生效的话,执行如下:


echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

注:执行完此命令后,重新打开xshell窗口就是新版的gcc了。

以下其他版本同理,修改devtoolset版本号即可。

这时候你可以再看一下gcc的版本号。

4.移动配置文件到安装目录下

  cd ../

  mkdir /usr/local/redis/etc

  mv redis.conf /usr/local/redis/etc

 5.配置redis为后台启动

  vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes

6.将redis加入到开机启动

  vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)

7.开启redis

  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 

 

8.将redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用

  cp /usr/local/redis/bin/redis-server /usr/local/bin/

  cp /usr/local/redis/bin/redis-cli /usr/local/bin/

 

9.设置redis密码

  a.运行命令:redis-cli

  b.查看现有的redis密码(可选操作,可以没有)

    运行命令:config get requirepass 如果没有设置过密码的话运行结果会如下图所示

  c.设置redis密码

    运行命令:config set requirepass ****(****为你要设置的密码),设置成功的话会返回‘OK’字样

  d.测试连接

    重启redis服务

    //(redis-cli -h 127.0.0.1 -p 6379 -a ****(****为你设置的密码))

    输入 redis-cli 进入命令模式,使用 auth '*****' (****为你设置的密码)登陆      

 10.让外网能够访问redis

    a.配置防火墙:  firewall-cmd --zOne=public --add-port=6379/tcp --permanent(开放6379端口)

          systemctl restart firewalld(重启防火墙以使配置即时生效)

     查看系统所有开放的端口:firewall-cmd --zOne=public --list-ports

    

    b.此时 虽然防火墙开放了6379端口,但是外网还是无法访问的,因为redis监听的是127.0.0.1:6379,并不监听外网的请求。

      (一)把文件夹目录里的redis.conf配置文件里的bind 127.0.0.1前面加#注释掉

      (二)命令:redis-cli连接到redis后,通过 config get  daemonize和config get  protected-mode 是不是都为no,如果不是,就用config set 配置名 属性 改为no。

      

常用命令  

  redis-server /usr/local/redis/etc/redis.conf //启动redis

  pkill redis  //停止redis

  卸载redis:

    rm -rf /usr/local/redis //删除安装目录

    rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本

    rm -rf /root/download/redis-4.0.4 //删除redis解压文件夹

 

8-启动redis:

两种方式:


redis-server &

 


加上`&`号使redis以后台程序方式运行

或者是

 


redis-server

 

9-检测后台进程是否存在

 


ps -ef |grep redis

10-检测6379端口是否在监听

 


netstat -lntp | grep 6379

有时候会报异常

原因: Redis已经启动

解决: 关掉Redis,重启即可

 

  1.  

    redis-cli shutdown

  2.  

    redis-server


然后你就能看到Redis愉快的运行了.

 

使用redis-cli客户端检测连接是否正常

 

  1.  

    redis-cli

  2.  

    127.0.0.1:6379> keys *

  3.  

    (empty list or set)

  4.  

    127.0.0.1:6379> set key "hello world"

  5.  

    OK

  6.  

    127.0.0.1:6379> get key

  7.  

    "hello world"


 

停止redis:

使用客户端

 


redis-cli shutdown

因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的

 


kill -9 PID

 

#启动redis服务端

$ src/redis-server



#启动redis客户端

$ src/redis-cli

 

 

Redis客户端常见操作

Redis是key-value数据库,支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  • 当value是string类型,命令包括set get setnx incr del 等。


> set server:name "fido"  // 设置键值

OK

> get server:name  // 获取键值

"fido"

> setnx connections 10   // set if not exists

OK

> incr connections   // 原子性增加values值

(integer) 11

> incr connections

(integer) 12

> del connections  // 删除key

(integer) 1

> incr connections

(integer) 1

 

当value是list类型,命令包括rpush lpush llen lrange lpop rpop del 等。

 

> rpush friends "Alice"   // 在末尾追加

(integer) 1

> rpush friends "Bob"

(integer) 2

> lpush friends "Sam"    // 插入到开头

(integer) 3


> lrange friends 0 -1     // 返回列表的子集,类似切片操作

1) "Sam"

2) "Alice"

3) "Bob"

> lrange friends 0 1

1) "Sam"

2) "Alice"

> lrange friends 1 2

1) "Alice"

2) "Bob"


> llen friends   // 返回列表长度

(integer) 3

> lpop friends   // 删除并返回列表第一个元素

"Sam"

> rpop friends   // 删除并返回列表最后一个元素

"Bob"

> lrange friends 0 -1

1) "Alice"


> del friends    // 删除key

(integer) 1     // 1表示成功,0表示失败

 

当value是set类型,命令包括sadd srem sismember smembers sunion del等。

> sadd superpowers "flight"     // 添加元素

(integer) 1

> sadd superpowers "x-ray vision"

(integer) 1

> sadd superpowers "reflexes"

(integer) 1

> srem superpowers "reflexes"   // 删除元素

1


> sismember superpowers "flight"   // 测试元素是否在集合中

(integer) 1

> sismember superpowers "reflexes"

(integer) 0

> smembers superpowers    // 返回集合中所有元素

1) "x-ray vision"

2) "flight"


> sadd birdpowers "pecking"

(integer) 1

> sadd birdpowers "flight"

(integer) 1

> sunion superpowers birdpowers    // 合并多个set,返回合并后的元素列表

1) "x-ray vision"

2) "flight"

3) "pecking"


> del superpowers   // 删除key

(integer) 1

 

当value是zset类型,命令包括 zadd zrange del等,注意给value一个编号用于排序。

> zadd hacker 1940 "Alan Kay"     // 给value指定一个编号,比如以年份1940作为编号

(integer) 1

> zadd hacker 1906 "Grace Hopper"

(integer) 1

> zadd hacker 1953 "Richard Stallman"

(integer) 1

> zadd hacker 1965 "Yukihiro Matsumoto"

(integer) 1

> zadd hacker 1916 "Claude Shannon"

(integer) 1

> zadd hacker 1969 "Linux Torvalds"

(integer) 1

> zadd hacker 1957 "Sophie Wilson"

(integer) 1

> zadd hacker 1912 "Alan Turing"

(integer) 1


> zrange hacker 2 4    // 切片返回有序集合中元素

1) "Claude Shannon"

2) "Alan Kay"

3) "Richard Stallman"


> del hacker    // 删除key

(integer) 1

 

当value是hash类型,hash类型可以理解为字典,需要给value指定一个field用于映射,命令包括hset hmset hget hgetall hdel hincrby del 等。

 

> hset user:1000 name "John Smith"   // 给value指定一个field,比如name

(integer) 1

> hset user:1000 email "john.smith@example.com"

(integer) 1

> hset user:1000 password "s3cret"

(integer) 1

> hgetall user:1000   // 获得hash表中所有成员,包括field和value

1) "name"

2) "John Smith"

3) "email"

4) "john.smith@example.com"

5) "password"

6) "s3cret"


> hmset user:1001 name "Mary Jones" password "hidden" email

"mjones@example.com"   // 设置多个field和value

OK

> hget user:1001 name   // 根据field获取value

"Mary Jones"


> hset user:1000 visits 10    // field可以映射到数字值

(integer) 1

> hincrby user:1000 visits 1    // 原子性增加value的值,增加1

(integer) 11

> hincrby user:1000 visits 10    // 增加10

(integer) 21

> hdel user:1000 visits      // 删除field及其value

(integer) 1

> hincrby user:1000 visits 1

(integer) 1


> del user:1000     // 删除key

(integer) 1

 

设置和查看key的生命周期,key过期会被自动删除,命令包括expire ttl 等。

> set resource:lock "Redis Demo"

OK

> expire resource:lock 120   // 设置生命周期为120s

(integer) 1

> ttl resource:lock   // 查看当前生命周期还剩多少时间

(integer) 109

> ttl resource:lock   // 120s后查看,返回-2表示已过期或不存在

(integer) -2


> set resource:lock "Redis Demo 2"

OK

> ttl resource:lock    // 返回-1表示永不过期

(integer) -1

 

 

 

查看linux上面是否有安装redis,redis启动

 

1、检测是否有安装redis-cli和redis-server;

  1.  

    [root@localhost bin]# whereis redis-cli

  2.  

    redis-cli: /usr/bin/redis-cli

  3.  

     

  4.  

    [root@localhost bin]# whereis redis-server

  5.  

    redis-server: /usr/bin/redis-server


 

 


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
author-avatar
仰望天空说再见
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有