Redis 缓存中间件 缓存数据库

Redis 缓存中间件 缓存数据库

nginx web服务
PHP 转发动态请求
tomcat web页面也可以转发动态请求
springboot 自带tomcat
所有的数据库不支持高并发,一旦访问量激增,数据库很快就会崩溃。
Redis 非关系型数据库 nosql not only sql 不仅仅是sql
键值对形式:
key value
数据的类型不是定义好的类型。根据自定义,系统自动识别。

Redis简介:

Redis 远程字典服务器
键值对
开源的,C语言写的nosql数据库。
Redis基于内存运行,所有的数据不是保存到硬盘,而是内存。
持久化: 定期或者人为的把数据保存到硬盘上

安装步骤:
yum -y install gcc gcc-c++ make
tar -xf redis-5.0.7.tar.gz
cd redis-5.0.7/
ls
make -j 4
make PREFIX=/usr/local/redis install
cd utils/
./install_server.sh
/usr/local/redis/bin/redis-server
#4次回车,输入安装目录/usr/local/redis/bin/redis-server
ln -s /usr/local/redis/bin/* /usr/local/bin/
vim /etc/redis/6379.conf
#70行加入自己本机的地址
/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 status
netstat -antp | grep 6379

Redis的优点:

1、极高的读写速度,读速度可以达到11万次/秒,写入:81000次/秒
2、支持丰富的数据类型,键值对可以定义多种数据类型 string list hash set
3、支持数据持久化,内存当中的数据保存到磁盘
4、原子性,Redis所有操作都是原子性。要么都成功,要么都失败。
5、支持主从模式和高可用模式(哨兵模式),以及集群。

Redis基于内存运行的数据库,缓存是最常应用场景。
排行榜
计数器
存储关系
实时分析记录,日志系统。

缓存的概念:

缓存是一种用于存储临时数据副本的技术。
目的:提高访问速度和性能。
缓存通常位于数据的访问路径上,数据的必经之路。可以在不直接访问原始数据的情况下,可以之间获取数据。

缓存应用场景:
1、web登录缓存
2、数据库缓存
3、对象缓存(大数据应用)

redis-cli -h 192.168.11.146 -p 6379
-h 指定地址
-p 指定端口 (必须加端口)
-a 指定密码 (没密码可以不加)

redis-cli 命令行工具
redis server start stop restart 控制redis
redis-benchmark 检测redis在本机的运行效率
redis-check-aof 修复AOF持久化的文件
redis-check-rbd 修复RDB持久化的文件

redis-benchmark -h 192.168.11.147  -p 6379 -c 100 -n 100000
向redis的主机模拟发送100个并发连接,同时发送100000个请求测试

redis-benchmark -h 192.168.11.146 -p 6379 -q -d 100
模拟存储100个数据包的性能测试
vim /etc/redis/6379.conf     #主要配置文件
70 监听端口配置
89 保护模式
93 端口配置
172 日志路径   /var/log/redis_6379.log
/etc/init.d/redis_6379 restart   #控制Redis状态

进入redis

[root@myslq4 utils]# redis-cli -h  192.168.11.147 -p 6379 -a 123456 
CONFIG SET requirepass ""   #无法重启故障解决

redis 数据库常用命令

1、基础数据类型:

string 字符串
list 列表型
hash 散列,键值对
set 集合,不重复的无序集合
zset 有序集合

创建键值对
set test1  10
获取数据
get test1
"10"
查看是否存在

(存在返回1,不存在返回0)

EXISTS test1
查看存在的键值对
keys *
查看类型
type test1
删除键值对
del test4 
del test1 test2
修改键值对名称
RENAME test1 FBB
设置登录密码
CONFIG SET requirepass 123456
auth 123456

CONFIG GET requirepass

redis-cli -h  192.168.11.146 -p 6379 -a 123456     #登录
1、string类型

string是redis的基础类型 ,最大能存储512MB的数据。
数字,图片等等都是默认string类型。

追加
192.168.11.146:6379> append FBB niu
(integer) 3
STRLEN FBB     查看长度
(integer) 12
自增、自减
192.168.11.146:6379> incrby   myket  10 自增   10          

192.168.11.146:6379> decrby    mykey 5     自减 5
设置生命周期
192.168.11.146:6379> SETEX mykey 15 hello   创建一个生命周期为15秒 key:mykey  value:hello  
移值到其他库
192.168.11.146:6379> get mykey
"10"
192.168.11.146:6379> move mykey 1    转移到目标库
(integer) 0
创建多个键值对
192.168.11.146:6379> mset  test1 1  test2 2  test3 3   #创建多个键值对
OK
192.168.11.146:6379> keys *
1) "test3"
2) "test2"
3) "test1"
192.168.11.146:6379> mget test1 test2 test3    
1) "1"
2) "2"
3) "3"
2、list类型
创建列表
192.168.11.146:6379> LPUSH mykey a b c d     创建列表
192.168.11.146:6379> LRANGE mykey 0 -1       查看列表全部信息
192.168.11.144:6379> LRANGE mykey 2 -1
1) "b"
2) "a"
192.168.11.144:6379> LRANGE mykey 1 2
1) "c"
2) "b"
插入数据
192.168.11.144:6379> LPUSHx mykey e      #插入新的(只能插入已存在的列表)从头插
(integer) 5
删除
192.168.11.144:6379> LPOP mykey    从头删除
指定删除
192.168.11.144:6379> lrem mykey 2 a    #删除两个a的值
查看元素数量
192.168.11.144:6379> llen mykey
(integer) 4
查看指定位置元素
192.168.11.144:6379> LPUSH mykey a b c d e f   #创建表(倒序排序)
(integer) 6
192.168.11.144:6379> LINDEX mykey  4    #查看指定值的信息
"b"
192.168.11.144:6379> LSET mykey 5 10    #替换指定的值
192.168.11.144:6379> LINSERT mykey  before  10 9   在10前加一个数值9
(integer) 7
192.168.11.144:6379> LINSERT mykey  after   10 9    在10后面加一个数值9
(integer) 7

192.168.11.144:6379> RPUSH mykey1 a b c d   #正序排序

3、hash 散列

用来存储对象,对象类别和ID构成一个键名
hash存储的空间很小,占用的内存和持久化后的磁盘空间都很少

hash是一个键值对,包含多个对象和对象的值。
myhash就是一个hash值,一个hash值可以存42亿个键值对。

创建
192.168.11.144:6379> hset myhash id1 1 id1  2 

添加hash值
192.168.11.144:6379> hsetnx myhash id3 3      (key不能和表中的重复)
(integer) 1
查看hash
192.168.11.144:6379> hset myhash qq 1 qq2 2 qq3 3 
(integer) 3
192.168.11.144:6379> HGET myhash qq
"1"
192.168.11.144:6379> hmget myhash id1 id2    #查看多个值

192.168.11.144:6379> hgetall myhash    #查看所有的key对应的值

192.168.11.144:6379> hkeys myhash      #只看key

192.168.11.144:6379> hvals myhash      #只看对象的值(value)
删除hash
192.168.11.144:6379> hdel myhash qq
4、set 无序集合

无序集合中元素类型只能是string,无序集合当中元素具有唯一性,不允许重复
**应用场景:**可以使用set数据,追踪唯一性的数据,比如ip地址,或者根据客户的id区分不同客户购买的同一产品。

创建
192.168.11.144:6379> sadd myset a b b c
(integer) 3
查看集合元素
192.168.11.144:6379> smembers myset
1) "b"
2) "a"
3) "c"
添加值
192.168.11.144:6379> sadd myset a d  e 
(integer) 2
获取集合元素数量
192.168.11.144:6379> scard myset
(integer) 5
随机获取
192.168.11.144:6379> srandmember myset
删除
192.168.11.144:6379> spop myset           随机删除
"b"
192.168.11.144:6379> srem myset   a       指定删除一个
(integer) 1
192.168.11.144:6379> srem myset   e  c     指定删除多个
(integer) 2
不同集合元素移动
192.168.11.144:6379> smove    myset   myset2       d 
                            移出集合   移入集合  需要移出的值
 (integer) 1
5、 zset 有序集合

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

创建
192.168.11.144:6379> zadd myzet 1 "one"    
(integer) 1
192.168.11.144:6379> zadd myzet 2 "two"
(integer) 1
192.168.11.144:6379> zadd myzet 3 "three"  4 "four"
(integer) 2
排序
192.168.11.144:6379> zrange myzet 0 -1 withscores    #按照权重大小进行排序
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"

查看
192.168.11.144:6379> zrange myzet 0 -1     #集合内对象
1) "one"
2) "two"
3) "three"
4) "four"
192.168.11.144:6379> zrangebyscore myzet 2  5    获取权重在2--5之间的值   2<=x<=5
1) "two"
2) "three"
3) "five"
4) "four"

删除

192.168.11.144:6379> zrem myzet "one"
(integer) 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码要你命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值