关于redis:linux下安装和简单使用redis

55次阅读

共计 5680 个字符,预计需要花费 15 分钟才能阅读完成。

最近在 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.8

make

cd src

make install PREFIX=/usr/local/redis

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 

如果没有设置过明码的话运行后果会如下

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. [root@localhost bin]# whereis redis-server
  4. 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 ****(**** 为你心设置的明码)

正文完
 0