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秒内,数据至少写入一次 调用
save300秒内,数据至少写入10次 调用
save60秒内,数据写入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






浙公网安备 33010602011771号