7.1 Redis

简介

-基于内存的数据库
	--存储关键型业务数据,而且尽量定时删除
	-数据持久化
-基于硬盘+内存
	-存储容量大
	-有强大的SQL语句支撑,可以处理更加复杂的业务逻辑
-存放到数据类型
	-所有的存放都是以key-value结构存储的
	-key的类型默认都是string类型
	-value的类型非常丰富(string,list,set,hasttable,sort set)
	-在使用redis时,抛开主从集群哨兵等机制,就相当于是一个远程的map
-缓存数据库的注意点
	-缓存击穿
		-针对于某一个失效key进行大批量访问,热点数据。
		-解决方案
			-后台刷新
			-检查更新
			-分级缓存,对key加锁
	-缓存雪崩
		-如果给key统一设置失效时间为3分钟,失效时会同时失效
		-导致短时间内原数据库访问压力增大 
		-解决方案
			-设置时间的时候可以根据业务逻辑设置区间(150-250)(250-350)
			-提前加载热数据
	-缓存穿透
		-如果查询用户 zhangsan的信息,然后把它存放到内存数据库
		-如果查询用户lisi的数据,查询结果为空,数据就不会缓存到内存数据库
		-这个时候内存数据库就不能拦截用户对源数据库的直接访问
			-布隆过滤器
			-缓存无效数据 lisi-->null


Redis(单节点版)安装

安装依赖

--语法:
yum install gcc tcl -y

上传解压

--语法:
tar -zxf redis-3.2.9.tar.gz

编译并安装

--进入解压目录
cd redis-3.2.9
--安装
make && make install

软件默认安装到/usr/local/bin目录
在这里插入图片描述
启动Redis服务器

--语法:
redis-server

在这里插入图片描述
没有配置文件 使用默认配置文件

Running in standalone mode
Port: 6379
单节点模式运行
默认端口:6379

客户端连接服务器

--语法:
redis-cli -h 连接地址 -p 端口号
--默认连接本地的6379端口
--示例:
redis-cli
--退出客户端控制台
quit

关闭Redis服务器

语法:
Ctrl + C
ps -ef | grep redis
kill -9 线程号
--查看redis端口并关闭

添加配置文件

--创建目录
mkdir -p /opt/sxt/redis-3.2.9
--拷贝conf配置文件
cp /root/redis-3.2.9/redis.conf /opt/sxt/redis-3.2.9/
--修改配置文件
vim /opt/sxt/redis-3.2.9/redis.conf

配置示例:

#修改绑定的地址
在这里插入图片描述
#后台模式
在这里插入图片描述

关机拍照



Redis的命令

基本型操作

-切换数据库
	-默认创建16个数据库(0-15)
	-select index 切换数据库

Key的操作

-keys *

-设置key的时长
	-exprie key 10 (设置10秒)
	
-查看剩余的有效时间
	-ttl key (>0有效 =-1永不失效 =-2 已失效)
	
-查看key对应值的类型
	-type key
	
-删除指定的key
	-del key

String

-SET KEY VALUE [EX sec] [NX|XX]
	-EX 设置过期时间,秒,等同于SETEX key seconds value
	-PX 设置过期时间,毫秒,等同于PSETEX key milliseconds value
	-NX 键不存在,才能设置,等同于SETNX key value
	-XX 键存在时,才能设置
	-工作中设置key的时候,一般加指定的前缀,方便管理


-Get key
	-通过key获取value
	
-append key 
	-字符串的拼接

-strlen key
	-字符串的长度

-getrange key start end
	-返回 key 中字符串值的子字符串
	-闭区间
	-end值为负数视为倒数

-setrage key offset value
	-从指定的位置开始替换数据

-setex key seconds value
	-同时设置失效时间和值

-decr key
	-每次减少一个

-decrby key num
	-每次减少num个

-incr key
	-每次增加一个

-incrby key num
	-每次增加num个

-mget mset 
	-一次性存取多个值

List(LinkedList)

-lpush key value...
	-向链表左面添加
	-a b c -->c b a

-rpush key value...
	-向链表右面添加
	-a b c --> a b c

-lrange list 0 -1
	-查看整个列表的数据

-lpop key
	-移除左面第一个元素

-rpop key
	-移除右面第一个元素

-lindex list 2
	-返回指定索引对应的数据

-llen list
	-list的长度

-lrem key count value
	count 要移除的数量和方向
	3 左向右移除三个
	-3 右向左移除三个
	-0 移除所有

-ltrim key start end
	-移除所有区间外的元素

-rpoplpush list1 list2
	-将list1的尾移到list2的头

-lset key index value
	-lset list 2 x 替换索引位置2的元素

-linsert key after|before pivot value
	-在目标值前面或者后面插入值

Set

-sadd key member
	-添加元素,无序

-smembers key
	-获取所有的元素

-scart key
	-返回元素的数量

-srandmember key ---- spop key
	-随机获取一个元素

-smove set1 set2 a
	-将set1中的a元素添加到set2中

-sinter set1 set2 set3
	-获取共同拥有的元素(交集)

-sunion set1 set2 set3
	-获取元素的并集

Sort Set

-zadd key score member
	-将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

-zrange key 0 -1 
	-按照score排序获取结果

-zrevrange zset 0 -1
	-逆序按照score排序

-zscore key member
	-返回成员member的score值

-zcount key 60 100
	-统计score的值在60-100之间的数量

-zrank key member
	-查看member的排名

HSET

-hset key field value 《String,Map<String,String>》
	-设置hash表中的域field的值

-hget key field
	-获取field值

-hgetall key
	-获取哈希表key中所有的域和值

-hkeys key
	-获取哈希表key中所有的域

-hvals key
	-获取哈希表key中所有域的值

-hdel key field
	-移除key表中的域field


数据的持久化

RDB

  • RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照
  • 内存中的数据集快照写入磁盘
        config set save “”
        不自动保存数据
        save 立即保存数据
# 格式
save secs changes
#   after 900 sec (15 min) if at least 1 key changed
#   after 300 sec (5 min) if at least 10 keys changed
#   after 60 sec if at least 10000 keys changed
save 900 1
save 300 10
save 60 10000

AOF(Append Only File)

  • 将用户所有的操作记录到日志中(除了查询操作)
  • AOF的策略
        always
        no
        everysec
  • rewrite
        重写日志,减少日志文件的大小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值