Redis

Redis目录

安装

下载安装包
解压安装包(程序/opt)
tar -zxvf 包名

进入解压后的文件
看到redis的配置文件(redis.conf)

安装环境
yum install gcc-c++
make
make install
查看版本
gcc -v

redis默认安装路径
/usr/local/bin
将redis配置文件复制到当前目录下

redis默认不是后台启动,修改配置文件
在这里插入图片描述
改为yes

启动与关闭服务

启动redis服务
redis-server kconfig/redis.conf
kconfig/redis.conf通过指定配置文件启动

使用redis客户端连接
redis-cli

查看redis进程是否运行

关闭redis服务
shutdown 关闭服务
exit 退出redis

再次查看redis进程是否运行

性能测试

redis-benchmark是一个压力测试工具
redis-benchmark [option] [option value]
在这里插入图片描述

Redis基础知识

redis默认有16个数据库
在这里插入图片描述
默认使用第0个

select 切换数据库
DBSIZE 查看数据库大小
flushall 清空全部
flushdb 清空当前数据库

Redis 6.0 开启多线程?

在conf文件进行配置
在这里插入图片描述

io-threads-do-reads yes
io-threads 线程数
官方建议:4 核的机器建议设置为 2 或 3 个线程,8 核的建议设置为 6 个线程,线程数一定要小于机器核数,尽量不超过8个。

Redis-Key

keys * 查看所有key
set 设置值
get 获取值
exists 判断当前key是否存在
move 移动key到指定数据库中
DEL 删除一个或多个key
expire 设置key的过期时间,单位是秒
ttl 查看当前key的剩余时间
type 查看当前key对应值的类型

五大数据类型

String

append 追加字符串,如果当前key不存在,则新建一个key
strlen 获取key的字符串长度
incr 自增1
decr 自减1
incrby 指定增长数值
decrby 指定减少数值
range 字符串范围

getrange 截取字符串
setrange 替换指定位置开始的字符串

setex(set with expire) 设置过期时间
setnx(set if not exist) 如果不存在再设置
mset 批量设置
mget 批量获取
msetnx 不存在则批量设置,要么同时成功,要么同时失败

对象

mset a:b:c 值【a:b:c 值】设置对象
mget a:b:c【a:b:c 值】获取对象

getset 先获取,再设置

List

LPUSH 将一个或多个值插入列表头部
LRANGE 获取list中的值
RPUSH 将一个或多个值插入列表尾部
LPOP 移除list第一个元素
RPOP 移除list最后一个元素
LINDEX 通过索引获取list某一个值
LLEN 返回列表的长度
LREM 移除list集合中指定个数的value值
LTRIM 通过索引截取指定的长度

RPOPLPUSH 移除列表的最后一个元素,并将它移动到新的列表中
LSET 将列表中指定索引的值替换为另外一个值
LINSERT 将某个具体的value插入到列表中某个元素的前面或后面

Set

Set中的值不能重复

SADD set集合中添加元素
SMEMBERS 查看指定set的所有值
SISMEMBER 判断值是否在set集合中
SCARD 获取set集合中的元素个数
SREM 移除set中的元素
SRANDMEMBER 随机抽选一个元素
SPOP 随机移除set集合中的元素
SMOVE 移动指定的元素,到另一个集合中
SDIFF 差集
SINTER 交集
SUNION 并级

Hash

HSET 设置key-value
HGET 获取value
HMSET 设置多个key-value
HMGET 获取多个value
HGETALL 获取全部数据(键值对)
HDEL 删除hash指定的key字段
HLEN 获取hash集合长度
HEXISTS 判断hash中指定字段是否存在
HKEYS 获取hash中所有的字段
HVALS 获取hash中所有的value

incr decr

HINCRBY 自增或自减
HSETNX 如果不存在,则可以设置

Zset

有序集合,在set基础上增加了一个值

ZADD 添加一个值
ZRANGE 获取值(从小到大)
ZRANGEBYSCORE 从小到大排序显示
ZREVRANGEBYSCORE 从大到小排序显示
ZREM 移除指定元素
ZCARD 获取集合中元素的个数
ZCOUNT 获取指定区间的元素个数

特殊数据类型

geospatial 地理位置

GEOADD 添加地理位置
GEOPOS 从key里返回所有给定位置元素的位置(经度和纬度)。
GEODIST 返回两个给定位置之间的距离。
GEORADIUS 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。
GEORADIUSBYMEMBER 使用输入的经度和纬度来决定中心点,指定成员的位置被用作查询的中心。
GEOHASH 返回一个或多个位置元素的 Geohash 表示。

GEO底层的实现原理就是ZSET。可以使用ZSET命令操作GEO

Hyperloglog

数据结构
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

PFADD 添加元素
PFCOUNT 统计元素的数量
PFMERGE 合并两组数据

Bitmaps

位存储
Bitmaps位图,数据结构!都是操作二进制位进行记录,状态只有0和1

SETBIT 设置值
GETBIT 获取值
BITCOUNT 统计

事务

事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

Redis的事务:
开启事务
命令入队
执行事务

MULTI 开启事务
EXEC 执行事务
DISCARD 清空事务

乐观锁

WATCH 命令可以为 Redis 事务提供 check-and-set (CAS)行为。
UNWATCH 解锁

EXEC 返回nil-reply来表示事务已经失败

SpringBoot

配置文件
spring.redis.host=localhost
spring.redis.port=6379

使用RedisTemplate来操作redis

使用equals判定string而不是==

主从复制

只配置从库,不用配置主库(默认为主库)
主机可以写。从机只能读不能写

info replication 当前库的信息
SLAVEOF HOST PORT 可以将当前服务器转变为指定服务器的从属服务器
SLAVEOF no one 使当前从机变回主节点

哨兵模式

自动将从库转化为主库

配置哨兵配置文件sentinel.conf

sentinel monitor 服务器名 主机ip 主机端口 设置要多少个 Sentinel 同意才能判断一个服务器失效

启动哨兵

redis-sentinel

https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...
https://board.s9y.org/viewtop...

你可能感兴趣的:(redis)