linux 安装redis 完整步骤

参考推荐:https://www.jianshu.com/p/fbe40258fe27
点击查看原文

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为后台启动

  vim  /usr/local/redis/etc/redis.conf 

将daemonize no 改成daemonize yes


image.png

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。


image.png

image.png

设置systemctl启动

[Unit]
Description=redis
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf 
ExecStop=/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后保存退出
刷新一下
systemctl daemon-reload

systemctl 常用命令

systemctl enable redis 开机自启redis服务

systemctl disable redis 取消开机自启

systemctl start redis.service  启动redis服务

systemctl stop redis.service  停止服务

systemctl restart redis.service  重新启动服务

systemctl status redis.service 查看服务当前状态

systemctl list-units --type=service 查看所有已启动的服务

=====以下不重要,在哪抄的忘了=====

常用命令

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

有时候会报异常

image

原因: 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如果没有设置过密码的话运行结果会如下图所示

image

3、设置redis密码

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

4、重启redis服务

ctrl+C退出当前的命令行模式后运行命令:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351