最近在linux服务器上须要装置redis,来存放数据,减少用户拜访数据的速度,因为是第一次装置,于是在百度上搜了一篇文章,依照这篇博客,顺利装置好了,因而将博主的文章拷过去记录一下,不便当前应用,也为须要的敌人提供一个不便
参考博文地址:https://www.cnblogs.com/lauhp...
装置:
1.获取redis资源
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
2.解压
tar xzvf redis-4.0.8.tar.gz
3.编译与装置
cd redis-4.0.8makecd srcmake install PREFIX=/usr/local/redis
4.挪动配置文件到装置目录下
cd ../mkdir /usr/local/redis/etcmv 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
如果没有设置过明码的话运行后果会如下
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,重启即可
- redis-cli shutdown
- redis-server
而后你就能看到Redis欢快的运行了.
应用redis-cli
客户端检测连贯是否失常
- redis-cli
- 127.0.0.1:6379> keys *
- (empty list or set)
- 127.0.0.1:6379> set key "hello world"
- OK
- 127.0.0.1:6379> get key
- "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;
- [root@localhost bin]# whereis redis-cli
- redis-cli: /usr/bin/redis-cli
- [root@localhost bin]# whereis redis-server
- redis-server: /usr/bin/redis-server
Linux零碎下设置redis的明码
Linux零碎下设置redis的明码:
1、进入redis操作的命令行
运行命令:redis-cli
2、查看现有的redis明码(可选操作,能够没有)
运行命令:config get requirepass如果没有设置过明码的话运行后果会如下图所示
3、设置redis明码
运行命令:config set requirepass ****(****为你要设置的明码),设置胜利的话会返回‘OK’字样
4、重启redis服务
ctrl+C退出以后的命令行模式后运行命令:
redis-cli -h 127.0.0.1 -p 6379 -a ****(****为你心设置的明码)