redis优化 持久化

redis缓存中间件

nginx web服务器 缓存数据库

php 转发动态请求

tomcat 即是web页面也可以转发动态请求

springboot 自带tomcat

redis也是一个数据库,不单单是一个缓存工具。

redis 非关系型数据库 nosql not only sql 不仅仅是sql。

键值对形式

ky value

test1 = test2

数据的类型不是定义好的类型。

test1=10 string

redis简介

redis 远程字典服务器

键值对

开源的,c语言写的nosql数据库

redis基于内存运行,所有的数据不是保存在硬盘,而是内存。

持久化的功能——定期或者人为的把数据保存到硬盘。

redis优点

1、极高的读写速度,读速度可以达到110000次/秒 写速度81000次/秒

2、支持丰富的数据类型,键值对可以定义多种数据类型 string list hash set

3、支持数据持久化,内存当中的数据保存到磁盘

4、原子性,redis的所有操作都是原子性。

5、支持主从模式和高可用模式(哨兵模式),以及集群。

redis基于内存运行的数据库,缓存是最常应用场景。

排行榜

计数器

存储关系

实时分析记录,日志系统。

缓存的概念

缓存是一种用于存储临时数据副本的技术。目的就是提高访问速度和性能。

缓存通常位于数据访问的路径上,数据的必经之路。可以在不直接访问原始数据的情况下,可以直接获取数据。

缓存的应用场景

web缓存

数据库缓存

对象缓存(大数据应用)

redis-cli -h192.168.233.10 -p 6379
-h  指定IP地址
-p  指定端口
-a  密码(没有密码可以不加)
redis-cli  命令行工具
redis-server star stop restart  控制redis
redis-benchmark  检测redis在本机的运行效率
redis-check-aof  修复aof持久化的文件
redis-check-rdb  修复rdb持久化的文件
redis-benchmark -h192.168.233.10-p6379-c100 -n 100000
向redis的主机模拟发送100个并发连接,同时发送十万个请求测试
redis-benchmark-h192.168.233.10-p6379 -9-d 100
模拟存储一百个数据包的性能测试

redis数据库常用的命令

基础数据类型

string 字符串

list 列表

hash 散列,键值对集合

set 集合,不重复的无序集合

zet 集合,有序集合

set  创建数据
get  键值对名称   获取数据
exists  键值对名称  存在返回1  不存在返回0
type  键值对名    查看类型
del  键值对名    删除   返回1成功  
rename  旧名  新名     该键值对名
config set requirepass  123456   #设置密码
auth  123456

string类型是redis的基础类型 最大能够存储512B的数据,

数字 图片 等等都是默认string类型

append  #对值进行追加和创造
192.168.65.11:6379> incr mykey   #自增
(integer) 21
192.168.65.11:6379> decr mykey   #自减
(integer) 20
incrby mykey 10                   #指定增加
(integer) 30
192.168.65.11:6379> decrby mykey 10    #指定减少
(integer) 20
move 键值对名 1      #转移库
select 0  #切换库
192.168.65.11:6379> setex mykey 15 hello  #15秒之后就消失
OK
192.168.65.11:6379> ttl mykey
(integer) 7
192.168.65.11:6379> ttl mykey
(integer) -2
​

一次创建多个键值对

192.168.65.11:6379> mset test1 1 test2 2 test3 3
OK
192.168.65.11:6379> KEYS *
1) "test1"
2) "test3"
3) "test2"

一次查看多个键值对

192.168.65.11:6379> mget test1 test2 test3 
1) "1"
2) "2"
3) "3"

list 列表

创建列表

192.168.65.11:6379> LPUSH mykey a b c d
(integer) 4
192.168.65.11:6379> LRANGE mykey 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
192.168.65.11:6379> LRANGE mykey 0 2
1) "d"
2) "c"
3) "b"
#0是起始位,2是索引位
192.168.65.11:6379> LRANGE mykey 2 -1
1) "b"
2) "a"
#-1 表示最后一位

插入数据

192.168.65.11:6379> LPUSHx mykey e
(integer) 5
192.168.65.11:6379> LRANGE mykey 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
# 插入时从起始位开始插入

移除数据

192.168.65.11:6379> LPOP mykey 
"e"

查看有几个元素

192.168.65.11:6379> llen mykey
(integer) 4

删除

192.168.65.11:6379> lrem mykey 2 a
(integer) 1
192.168.65.11:6379> lrem mykey 1 c
(integer) 1

删除指定位置的值

192.168.65.11:6379> LPUSH mykey a b c d e f
(integer) 6
192.168.65.11:6379> lindex mykey 4
"b"

添加值

在指定位置后添加

192.168.65.11:6379> linsert mykey after e 8
(integer) 7
192.168.65.11:6379> LRANGE mykey 0 -1
1) "f"
2) "e"
3) "8"
4) "d"
5) "c"
6) "b"
7) "a"
192.168.65.11:6379> linsert mykey after e 8
(integer) 7
192.168.65.11:6379> LRANGE mykey 0 -1
1) "f"
2) "e"
3) "8"
4) "d"
5) "c"
6) "b"
7) "a"

从左往右删

192.168.65.11:6379> rpop mykey1
"d"
192.168.65.11:6379> lrange  mykey1 0 -1
1) "a"
2) "b"
3) "c"

hash类型

散列 用来存储对象,对象的类别和ID构成一个键名

192.168.65.11:6379> hset mykey id1 1 id2 2 id3 3
(integer) 3
192.168.65.11:6379> hlen mykey
(integer) 3
192.168.65.11:6379> hget mykey id1
"1"
192.168.65.11:6379> hgetall mykey
1) "id1"
2) "1"
3) "id2"
4) "2"
5) "id3"
6) "3"

添加

192.168.65.11:6379> hsetnx mykey id4 1
(integer) 1
192.168.65.11:6379> hgetall mykey
1) "id1"
2) "1"
3) "id2"
4) "2"
5) "id3"
6) "3"
7) "id4"
8) "1"

set集合 无序集合

元素类型只能是string,在无序集合当中元素具有唯一性,不允许重复。

应用场景,set的数据来追踪唯一的数据。

192.168.65.11:6379> sadd test a b c d
(integer) 4
192.168.65.11:6379> smembers test
1) "c"
2) "d"
3) "b"
4) "a"
​

插入时有相同数据就不重复插入

192.168.65.11:6379> sadd test a e f
(integer) 2
192.168.65.11:6379> smembers test
1) "b"
2) "a"
3) "c"
4) "d"
5) "f"
6) "e"

获取所有值和随机获取

192.168.65.11:6379> scard test
(integer) 6
192.168.65.11:6379> srandmember test
"e"
192.168.65.11:6379> srandmember test
"a"

随机删和指定删

192.168.65.11:6379> spop test
"a"
192.168.65.11:6379> spop test
"f"
192.168.65.11:6379> srem test c
(integer) 1
192.168.65.11:6379> smembers test
1) "d"
2) "b"
3) "e"

从一个集合移到另一个集合

192.168.65.11:6379> smove test test2 a  #值不能重复

有序集合 sorted set (zset)

元素类型都是string 元素唯一,不能重复

每个元素都会关联doublel类型的分数score(表示权重),通过权重的大小进行排序,权重大小可以相同

192.168.65.11:6379> zadd test1 1 "one"
(integer) 1
192.168.65.11:6379> zadd test1 2 "two" 3 "three"
(integer) 2
192.168.65.11:6379> ZRANGE test1 0 -1 withscores
1) "one"
2) "1"         #权重
3) "two"
4) "2"
5) "three"
6) "3"
192.168.65.11:6379> ZRANGE test1 0 -1 
1) "one"
2) "two"
3) "three"

权重可以相同

192.168.65.11:6379> ZRANGE test1 0 -1 withscores
1) "one"
2) "1"
3) "four"
4) "2"
5) "two"
6) "2"
7) "three"
8) "3"

获取权重范围

192.168.65.11:6379> zrangebyscore test1 2 5
1) "four"
2) "two"
3) "three"

五种数据类型

string 基本类型

list 列表

hash 散列 一个hash可以存储多个对象和对象值,对象名不可重复

set 无序集合,没有重复,没有权重

zset 有集合,没有重复,可以按照权重排序 string

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值