Redis的五种数据类型、基础命令及多实例配置启动

五种数据结构

redis

String: 字符串

 

 

Hash: 面向对象的结构

    面向数据结构,面向对象的处理数据的结构方式

 

 

 

List: 双向链表

    双向链表,特点,头尾操作速度快,中间的操作速度慢,有排序,分为上 (左)/下(右)

 

 

Set: 集合

    没有排序,不允许元素重复,一个集合的数据结构

 

 

ZSet: 有序集合

    在集合的基础上绑定一个score作为排序的依据 比较典型的使用场景是排行榜系统。例如视频网站需要对用户上 传的视频做排行榜榜

操作命令

基础命令

keys

查看key

keys * 查看当前节点所有的key值

set key value [NX/XX]

存储一个key-value结构的数据

set age 22 XX 如果key值相同则会覆盖原有值

NX 只有当前key值不存在的时候才能成功

XX 只有当前key存在于redis时才能成功

get key

获取当前key对用的value值

get age 获取age对应的value值

del key

根据key删除任意类型的value数据

del name

select 整数

redis默认存在16个分区(0--—15)

默认登陆的是0号分库

exists key [key] [key])

判断当前节点是否包含key数据

查询单个时 get 也可以完成

get比较浪费资源

exists haha kaka age 查询是否存在haha kaka age 的 key

save

将当前的内存数据保存到磁盘文件

默认保存在 dump.rbd中

flushall

将当前redis的所有数据清洗-–--—》 持久化文件,内存文件

flushall

flushdb

清空一个分库(0-15)的文件-–--—》 不删除持久化文件内容

flushdb

expire key seconds

设置缓存数据存储的时间,单位(/秒)

expire name 50

pexpire key milliseconds

设置缓存数据存储的时间,单位(/毫秒)

pexpire name 50

ttl key

查看一个key的超时时间剩余时间,单位(/秒)

ttl name

pttl key

查看一个key的超时时间剩余时间,单位(/毫秒)

pttl name

type key

查看key对应value的类型

type name

help 命令

查看命令使用详情

建议去redis官网查看

 

String命令

List命令

set命令

zset命令

 

 

 

redis的多实例配置启动

配置文件redis.conf

redis根目录 /home/software/redis-3.2.11/redis.conf
redis配置数据大小的单位

第11行

# 1k => 1000 bytes

# 1kb => 1024 bytes

# 1m => 1000000 bytes

# 1mb => 1024*1024 bytes

# 1g => 1000000000 bytes

# 1gb => 1024*1024*1024 bytes

绑定可以访问redis服务的ip地址

第61行

一般使用127.0.0.1,外网ip,默认只能在本地登陆

#bind 127.0.0.1

保护模式的使用

第80行

默认开启,除了本都客户端外的任何客户端无法使用

protected-mode no 手动关闭

开启服务的端口

第84行

默认端口是6379

port 6379

后台守护进程是否开启

第128行

一旦开启,那么启动进程不会占用控制台,会将日志输出到一个指定的日志文件中

daemonize yes 手动开启

日志输出地址

第163行

将日志输出到指定文件中

logfile "6379.log" 将日志文件打印到6379.log文件中

指定持久化的策略

第202行

900秒内,数据至少写入一次 调用save

300秒内,数据至少写入10次 调用save

60秒内,数据写入1000次 调用save

save 900 1

save 300 10

save 60 10000

变化频率越高,存储频率就越高

数据淘汰策略

第542行

# volatile-lru -> remove the key with an expire set using an LRU algorithm

# allkeys-lru -> remove any key according to the LRU algorithm

# volatile-random -> remove a random key with an expire set

# allkeys-random -> remove a random key, any key

# volatile-ttl -> remove the key with the nearest expire time (minor TTL)

# noeviction -> don't expire at all, just return an error on write operations

volatile:与设置的超时数据有关

allkeys:所有数据

 

volatile-lru: 当内存数据达到上限,对已经设置超时的数据,使用LRU(最近最久未置用算法),淘汰数据

volatile-random 当内存数据达到上限,对已经设置超时的数据,随机删除

容量上限

537行

#maxmemory <bytes>

 

准备三个实例的配置文件

[root@10-9-39-13 redis-3.2.11]# cp redis.conf 6379redis.conf

[root@10-9-39-13 redis-3.2.11]# cp redis.conf 6380redis.conf

[root@10-9-39-13 redis-3.2.11]# cp redis.conf 6381redis.conf

修改端口

:%s/6379/6380/g

保存退出

启动三个节点

[root@10-9-39-13 redis-3.2.11]# redis-server 6379redis.conf

[root@10-9-39-13 redis-3.2.11]# redis-server 6380redis.conf

[root@10-9-39-13 redis-3.2.11]# redis-server 6381redis.conf

查看启动状态

#ps -ef|grep redis

 

posted @ 2021-03-12 15:58  minnersun  阅读(63)  评论(0编辑  收藏  举报