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

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

5年前 (2019-09-03)Redis701

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 官方可视化工具

Redis 官方可视化工具

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