当前位置:首页 > Redis > 正文内容

Redis安装部署及常用命令操作

5年前 (2019-09-03)Redis662

Redis介绍


Redis特点


1.速度快

Redis 所有的数据都存放在内存中

Redis 使用c语言实现

Redis 使用单线程架构


2.基于键值对的数据结构服务器

5种数据结构:字符串,哈希,列表,集合,有序集合


3.丰富的功能

提供了键过期功能,可以实现缓存

提供了发布订阅功能,可以实现消息系统

提供了pipeline功能,客户端可以将一批命令一次性传到 Redis,减少了网络开销


4.简单稳定

源码很少,3.0 版本以后 5 万行左右.

使用单线程模型法,是的Redis服务端处理模型变得简单.

不依赖操作系统的中的类库


5.客户端语言多

java,PHP,python,C,C++,Nodejs等


6.数据持久化

把所有的数据都存在内存中

RDB和AOF


7.主从复制高可用和分布式

哨兵 redis-sentinel

集群 redis-cluster 


Redis应用场景


1.缓存-键过期时间

缓存session会话

缓存用户信息,找不到再去mysql查,查到然后回写到 redis

优惠卷过期时间


2.排行榜-列表&有序集合

热度排名排行榜

发布时间排行榜


3.计数器应用-天然支持计数器

帖子浏览数

视频播放次数

商品浏览数


4.社交网络-集合

踩/赞,粉丝,共同好友/喜好,推送,打标签


5.消息队列系统-发布订阅

配合elk实现日志收集


安装部署


1.目录规划

### redis 下载目录
/data/soft/
### redis 安装目录
/opt/redis_cluster/redis_{PORT}/{conf,logs,pid}
### redis 数据目录
/data/redis_cluster/redis_{PORT}/redis_{PORT}.rdb
### redis 运维脚本
/root/scripts/redis_shell.sh



2.安装操作命令

mkdir -p /data/redis_cluster/redis_6379

mkdir -p /opt/redis_cluster/redis_6379/{conf,pid,logs}

cd /data/soft/

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

tar zxf redis-3.2.9.tar.gz -C /opt/redis_cluster/

ln -s /opt/redis_cluster/redis-3.2.9/ /opt/redis_cluster/redis

cd /opt/redis_cluster/redis

make && make install

#添加环境变量
[root@db01 redis]# vim /etc/profile.d/redis.sh
export PATH="/application/redis/src:$PATH"


3.配置文件

cd /opt/redis_cluster/redis_6379/conf/

cat redis_6379.conf 

#以守护进程模式启动
daemonize yes

#绑定的主机地址
bind 10.0.0.51

#监听端口
port 6379

#pid 文件和 log 文件的保存地址
pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log

#设置数据库的数量,默认数据库为 0
databases 16

#指定本地持久化文件的文件名,默认是 dump.rdb
dbfilename redis_6379.rdb

#本地数据库的目录
dir /data/redis_cluster/redis_6379


4.启动

redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf


5.检查

ps -ef|grep redis 
netstat -lntup|grep 6379


6.配置hosts文件

cat /etc/hosts
10.0.0.51  db01
10.0.0.52  db02
10.0.0.53  db03


7.测试

[root@db-01 ~]# redis-cli -h db01 
[root@db-01 ~]# redis-cli -h db01 
db01:6379> set k1 v1
OK
db01:6379> get k1
"v1"
db01:6379>



redis基本操作命令


插入数据

set k1 v1 

set k2 v2

set k3 v3 


全局命令

1.查看所有的key(非常危险,有挂服务的危险)

keys *


2.查看有多少个key,注意,是估值

DBSIZE


3.查看是否存在这个KEY

EXISTS k1

EXISTS k1 k2 k3 


状态码:

0表示这个key不存在

1表示这个key存在

N 表示有的N个key存在


4.删除key

DEL k1

DEL k1 k2 k3


状态码:

0表示这个key不存在

1表示这个key存在,并且删除成功

N 表示有的N个key存在,并且删除N个Key


5.键过期

5.1设置过期时间

EXPIRE k1 100


5.2取消过期时间

PERSIST k2


5.3状态码:

0: 表示这个key原来就没有设置过期时间

1: 表示这个key存在过期时间,并且取消成功


5.4查看key是否过期

TTL k1


5.5状态码:

-1: 这个key存在,但是没有设置过期时间

-2: 这个key不存在

N:  表示这个key还有多久过期,时间是秒

ps:过期后的key直接会被删除


字符串操作:


1.设置一个key

set k1 v2


2.查看一个key

get k1 


3.设置多个key

MSET k1 v1 k2 v2 k3 v3


4.查看多个key

MGET k1 k2 k3


5.天然计数器

set k1 100


INCR k1#默认加1

INCRBY k1 N#加N


列表:


1、插入列表:

LPUSH:从列表左侧插入数据

RPUSH:从列表右侧插入数据


db01:6379> LPUSH list1 A

(integer) 1

db01:6379> LPUSH list1 B

(integer) 2

db01:6379> LPUSH list1 C

(integer) 3

db01:6379> RPUSH list1 D

(integer) 4


2、查看列表的长度:

db01:6379> LLEN list1

(integer) 4


3、查看列表的内容:

db01:6379> LRANGE list1 0 -1

1) "C"

2) "B"

3) "A"

4) "D"


5、删除列表元素:

LPOP: 从列表左侧删除

RPOP: 从列表右侧删除


db01:6379> LPOP list1 

"C"

db01:6379> RPOP list1

"D"

db01:6379> LRANGE list1 0 -1

1) "B"

2) "A"


6、删除列表内容:

db01:6379> DEL list1 

(integer) 1



哈希:


生成一个hash类型:

db01:6379> hmset user:1000 username qmf age 27 job it

OK


查看hash里的一个值

db01:6379> HGET user:1000 job

"it"

db01:6379> HGET user:1000 username

"zhangya"


查看hash里的多个值

db01:6379> HMGET user:1000 username age job

1) "qmf"

2) "27"

3) "it"


查看hash里的所有的值

db01:6379> HGETALL user:1000

1) "username"

2) "qmf"

3) "age"

4) "27"

5) "job"

6) "it"


集合:


1、创建集合

sadd set1 1 2 3

sadd set2 3 4 5


2、查看集合的成员:

db01:6379> SMEMBERS set1

1) "1"

2) "2"

3) "3"

db01:6379> SMEMBERS set2

1) "3"

2) "4"

3) "5"


3、查看集合的差集,以前面一个集合为基准对比后面的

db01:6379> SDIFF set1 set2

1) "1"

2) "2"

db01:6379> SDIFF set2 set1

1) "4"

2) "5"


4、查看集合的交集

db01:6379> SINTER set1 set2

1) "3"


5、查看集合的并集

db01:6379> SUNION set1 set2

1) "1"

2) "2"

3) "3"

4) "4"

5) "5"


6、集合不允许出现重复的值

db01:6379> SADD set1 1 2 3 4 5 6 6 7 7 

(integer) 4

db01:6379> SMEMBERS set1

1) "1"

2) "2"

3) "3"

4) "4"

5) "5"

6) "6"

7) "7"


返回列表

没有更早的文章了...

下一篇:Redis持久化操作

“Redis安装部署及常用命令操作” 的相关文章

Redis Sentinel 哨兵模式

Redis Sentinel 哨兵模式

哨兵介绍 Sentinel 介绍 Redis的主从模式下,主节点一旦发生故障不能提供服务,需要人工干预,将从节点晋升为主节点, 同时还需要修改客户端配置。对于很多应用场景这种方式无法接受。 Sentinel(哨兵)架构解决了 redis主从人工干预的问题。 Redis Senti...

Redis 官方可视化工具

Redis 官方可视化工具

RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持): https://docs.r...