最近需要在linux服务器上安装redis来存储数据,提高用户访问数据的速度。由于是第一次安装,所以在百度上搜索了一篇文章,根据这篇博文已经安装成功,所以把博主的文章复制下来记录一下,以备日后使用,也为有需要的朋友提供一个方便的参考博文地址需要:https://www.cnblogs.com/lauhp...安装:1.获取redis资源wgethttp://download.redis.io/releases/redis-4.0.8.tar.gz2。解压tarxzvfredis-4.0.8.tar.gz3。编译安装cdredis-4.0.8makecdsrcmakeinstallPREFIX=/usr/local/redis4.将配置文件移动到安装目录cd../mkdir/usr/local/redis/etcmvredis.conf/usr/local/redis/etc5.配置redis后台启动 vi/usr/local/redis/etc/redis.conf//将daemonizeno改为daemonizeyes6.添加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.conf8.复制redis-cli和redis-server到bin,这样redis-cli命令就可以在任意目录下直接使用/redis/bin/redis-server/usr/local/bin/ cp/usr/local/redis/bin/redis-cli/usr/local/斌/9。设置redis密码 a。运行命令:redis-cli b.查看已有的redis密码命令(可选操作,可以不)configgetrequirepass如果没有设置密码,运行结果如下设置redis密码运行命令:configsetrequirepass****(****是你要设置的密码),如果设置成功,会返回“OK”字样d.测试连接,重启redis服务redis-cli-h127.0.0.1-p6379-a****(****是你设置的密码)输入redis-cli进入命令模式,使用auth'\*\*\*\*\*'(****给你设置的密码)登录10.让外网可以访问redis a.配置防火墙:firewall-cmd--zone=public--add-port=6379/tcp--permanent(开放6379端口) systemctlrestartfirewalld(重启防火墙使配置立即生效) 查看系统所有开放的端口:firewall-cmd--zone=public--list-portsb。虽然此时防火墙已经开放了6379端口,但是仍然无法访问外网,因为redis监听的是127.0.0.1:6379,并没有监听外网的请求。(1)在文件夹目录下的redis.conf配置文件中的bind127.0.0.1前添加#注释掉(2)命令:redis-cli连接redis后,使用configgetdaemonize和configgetprotected-mode,正确的?两者都是no,如果不是,使用config设置配置名称属性改为no。 常用命令 redis-server/usr/local/redis/etc/redis.conf//启动redis pkillredis//停止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-server9-检测后台进程有没有ps-ef|grepredis10-检测6379端口是否监听netstat-lntp|grep6379有时会报异常原因:Redis已经启动解决方法:关闭Redis重启redis-clishutdownredis-server然后就可以看到Redis运行的很开心了。使用redis-cli客户端查看连接是否正常redis-cli127.0.0.1:6379>keys*(emptylistorset)127.0.0.1:6379>setkey"helloworld"OK127.0.0.1:6379>getkey"helloworld"stopredis:useclientredis-clishutdown因为Redis可以正常处理SIGTERM信号,所以直接kill-9也是可以的kill-9PIDstartredisserver$src/redis-server启动redis客户端$src/redis-cliRedis客户端常用操作Redis是一个key-value数据库,支持五种数据类型:string(字符串)、hash(散列)、list(列表)、set(集合)和zset(sorted集合:有序集合)。当值为字符串类型时,命令包括setgetsetnxincrdel等>setserver:name"fido"//设置key值OK>getserver:name//获取key值"fido">setnxconnections10//如果不存在则设置OK>incrconnections//原子增加values(integer)11>incrconnections(integer)12>delconnections//删除key(integer)1>incrconnections(integer)1当value为list类型时,命令包括rpushlpushllenlrangelpoprpopdel等人。>rpushfriends"Alice"//在末尾附加(整数)1>rpushfriends"Bob"(整数)2>lpushfriends"Sam"//在开头插入(整数)3>lrangefriends0-1//返回列表1)"Sam"2)"Alice"3)"Bob">lrangefriends011)"Sam"2)"Alice">lrangefriends121)"Alice"2)"Bob">llenfriends//返回列表的长度(整数)3>lpopfriends//删除并返回列表“Sam”的第一个元素>rpopfriends//删除并返回列表“Bob”的最后一个元素>lrangefriends0-11)"Alice">delfriends//deletekey(integer)1//1表示成功,0表示失败。当值为集合类型时,命令包括saddsremsismembersmemberssuniondel等>saddsuperpowers"flight"//添加元素(整数)1>saddsuperpowers"x-rayvision"(整数)1>saddsuperpowers“参考lexes"(integer)1>sremsuperpowers"reflexes"//移除元素1>sismembersuperpowers"flight"//测试元素是否在集合中(integer)1>sismembersuperpowers"reflexes"(integer)0>smemberssuperpowers//返回集合中的所有元素1)"x-rayvision"2)"flight">saddbirdpowers"pecking"(integer)1>saddbirdpowers"flight"(integer)1>sunionsuperpowersbirdpowers//合并多个集合并返回合并元素列表1)"x-rayvision"2)"flight"3)"pecking">delsuperpowers//删除key(integer)1当value为zset类型时,命令包括zaddzrangedel等,payattentiontovalue一个数字用于排序>zaddhacker1940"AlanKay"//给value赋一个数字,比如1940年作为数字(整数)1>zaddhacker1906"GraceHopper"(整数)1>zaddhacker1953“RichardStallman”(整数)1>zaddhacker1965“YukihiroMatsumoto”(整数)1>zaddhacker1916“ClaudeShannon”(整数)1>zaddhacker1969“LinuxTorvalds”(整数)1>zadd黑客1957“SophieWilson”(整数)1>zaddhacker1912"AlanTuring"(integer)1>zrangehacker24//切片返回有序集中的元素1)"ClaudeShannon"2)"AlanKay"3)"RichardStallman">delhacker//删除key(integer)1当value为hash类型时,hash类型可以理解为字典,需要为value指定一个字段进行映射。命令包括hsethmsethgethgetallhdelhincrbydel等>hsetuser:1000name"JohnSmith"//为值指定一个字段,例如name(integer)1>hsetuser:1000email"john.smith@example.com"(integer)1>hsetuser:1000password"s3cret"(integer)1>hgetalluser:1000//获取哈希表中的所有成员,包括字段和值1)"name"2)"JohnSmith"3)"email"4)"john.smith@example.com"5)"password"6)"s3cret">hmsetuser:1001name"MaryJones"password"hidden"email"mjones@example.com"//设置multiplefieldsandvaluesOK>hgetuser:1001name//根据字段“MaryJones”获取值>hsetuser:1000visits10//字段可以映射为数字值(整数)1>hincrbyuser:1000visits1//原子地增加value的值1(integer)11>hincrbyuser:1000visits10//添加10(整数)21>hdeluser:1000visits//删除字段及其值(整数)1>hincrbyuser:1000visits1(整数)1>deluser:1000//删除key(integer)1设置查看key的生命周期,key过期会自动删除,命令包括expirettl等>setresource:lock"RedisDemo"OK>expireresource:lock120//设置生命周期为120s(整数)1>ttlresource:lock//检查当前生命周期还剩多少时间(整数)109>ttlresource:lock//120s后检查,返回-2表示过期或doesnotexist(integer)-2>setresource:lock"RedisDemo2"OK>ttlresource:lock//return-1表示永不过期(integer)-1检查linux上是否安装了redis,redis启动1.检查是否安装了redis-cli和redis-server;[root@localhostbin]#whereisredis-cliredis-cli:/usr/bin/redis-cli[root@localhostbin]#whereisredis-serverredis-server:/usr/bin/redis-serverlinux系统下设置redis密码linux系统下redis密码设置:1、进入redis运行命令行,运行命令:redis-cli2。查看当前一些redis密码(可选操作,可以不填)运行命令:configgetrequirepass如果没有设置密码,运行结果如下图3.设置redis密码,运行命令:配置集requirepass****(****是你要设置的密码),如果设置成功,会返回“OK”字样4、重启redis服务ctrl+C退出当前命令行模式,运行命令:redis-cli-h127.0.0.1-p6379-a****(****是给你设置的密码)
