Redis使用方式
一、Redis基础部分:
1、redis介绍与安装比mysql快10倍以上
*****************redis适用场合****************
1.取最新N个数据的操作
2.排行榜应用,取TOP N 操作
3.需要精确设定过期时间的应用
4.计数器应用
5.Uniq操作,获取某段时间所有数据排重值
6.实时系统,反垃圾系统7.Pub/Sub构建实时消息系统
7.Pub/Sub构建实时消息系统8.构建队列系统
9.缓存
=============================================
SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下:
Linux 2.6, Xeon X3320 2.5Ghz.
stackoverflow 网站使用 Redis 做为缓存服务器。
同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)
1.安装:
tar zxvf redis-2.6.9.tar.gz
cd redis-2.6.9
make
cd src && make install
2.移动配置文件位置(为了便于管理)
cd /usr/local/
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
mv /lamp/redis-2.6.9/redis.conf /usr/local/redis/etc
cd /lamp/redis-2.6.9/src
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
3.修改配置文件
vi /usr/local/redis/etc/redis.conf
一、将daemonize no 中no改为yes[yes指后台运行]
4.启动/随机启动:
cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf#启动redis并指定配置文件。
#vi /etc/rc.local #设置随机启动。
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
5.查看是否启动成功
ps -ef | grep redis
netstat -tunpl | grep 6379#查看端口是否占用。
6.进入客户端/退出
cd /usr/local/redis/bin
./redis-cli#进入
quit#退出
7.关闭redis
pkill redis-server#关闭
./redis-cli shutdown#关闭
************************************Redis安全************************************
Redis的安全性???(由以下4种方式)
1.用ACL控制器安全性。
2.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。
bind 127.0.0.1
3.给redis加上较长密码(无需要记住)
4.在redis.conf配置启用认证功能。
5.SSL代理
6.禁用指定命令。
************************************** Redis配置 **********************************************
daemonize 如果需要在后台运行,把该项改为yes
pidfile 配置多个pid的地址 默认在/var/run/redis.pid
bind 绑定ip,设置后只接受来自该ip的请求
port 监听端口,默认为6379
timeout 设置客户端连接时的超时时间,单位为秒
loglevel 分为4级,debug、verbose、notice、warning
logfile 配置log文件地址
databases 设置数据库的个数,默认使用的数据库为0
save 设置redis进行数据库镜像的频率
rdbcompression 在进行镜像备份时,是否进行压缩
Dbfilename 镜像备份文件的文件名
Dir 数据库镜像备份的文件放置路径
Slaveof 设置数据库为其他数据库的从数据库
Masterauth 主数据库连接需要的密码验证
Requirepass 设置登录时需要使用的密码
Maxclients 限制同时连接的客户数量
Maxmemory 设置redis能够使用的最大内存
Appendonly 开启append only模式
以下了解即可:
Appendfsync 设置对appendonly.aof文件同步的频率
vm-enabled 是否开启虚拟内存支持
vm-swap-file 设置虚拟内存的交换文件路径
vm-max-memory 设置redis使用的最大物理内存大小
vm-page-size 设置虚拟内存的页大小
vm-pages 设置交换文件的总的page数量
vm-max-threads 设置VM IO同时使用的线程数量
Glueoutputbuf 把小的输出缓存存放在一起
hash-max-zipmap-entries 设置hash的临界值
Activerehashing 重新hash
*******************************************************************
5种数据类型:字符串、哈希、链表、集合、有序集合。
支持:push/pop、add/remove 、取交集、并集、差集、排序。
redis<===同步====>mysql
同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)
*******************************************************************
select num#选择库,默认在0库,共16个库
auth liweijie#授权用户所需密码(密码就是redis.conf中配置的密码)
flushdb#清空数据库。
String(字符串)类型:
set name lijie#设置键name的值为lijie
get name#获取name的值。
keys *#查询所有的键。
setnx name liweijie#如果键已存在则返回0,不更新,防止覆盖。
setex haircolor 10 red #设置键的值的有效期为10秒。
setrange email 6 lampbre.com#替换键的值从第6个字符开始换为lampbre.com
mset name1 李大伟 name2 李小伟#设置多个键的值。
msetnxname1 张三 name3 李四#判断键是否存在,不存在则设置,否则不设置返回0
mget name1 name2 name3#一次获取多个键的值。
getset name1 Tom#重新设置键的值,并返回旧的键值。
getrange email 6 18#截取email键的值,从第6-18位间的字符。
incr uid#每次自增1 (如果key中uid不存在,则设置并从0开始,下同)
incrby uid 5#每次自增5
incrby uid -5#每次自减5
decr uid #每次自减1
decrby uid 5#每次自减5
appendname1 @126.com#给name1的值,添加字符串@126.com
strlenname1#返回键name1的值的长度。
*************************************************************************
Hashes(哈希)类型:
hset user:001 name liweijie#哈希设置用户user:001的name键值为liweijie
hset user:001 age 21#同样,增加一个age键值为21
hsetnx user:001 age 22#同上,但检测键是否存在。若不存在创建。
hmset user:002 name liweijie2 age 26 sex 1#同时设置多个键的值。
hget user:001 name#哈希获取用户user:001的name键的值。
hget user:001 age #同上。
hmget user:001 name age sex#获取多个指定的键的值。
hgetall user:001#获取所有键的值。
hincrbyuser:001 age -8#在指定键上加上给定的值。
hexists user:001 sex#检测指定的键值是否存在。
hlen user:001#返回指定哈希的键个数/字段个数。
hdel user:001 sex#删除指定(user:001)哈希的指定字段或是键值。
hkeys user:003#返回哈希里所有字段或是键值。
*********************************************************************
Lists(链表)类型及操作(棧或队列):
lpush mylist "world"#从头部插入字符串
lpush mylist "hello"#同上
lrange mylist 0 -1#获取从0到最后一个如[1) "hello" 2) "world"]
rpush mylist "jiejie"#在尾部插入
linsert mylist before "hello" "this is linsert" #指定插入位置(在hello之前插入)。
lset mylist 0 "what"#设置修改指定下标的值。
lrem mylist 1 "hello"#删除(1个)一个值为hello的元素。(n<0从尾部删除,n=0全部删除)
ltrim mylist 1 2 #保留表中下标为1/2的元素。
lpop mylist#弹出开头元素并返回。
rpop mylist#弹出尾部元素并返回。
rpoplpush mylist mylist2 #从mylist尾部弹出插入到mylist2的头部。
lindex mylist 0#获取表下标为0的元素值。
llen mylist#返回表元素个数(相当于count($arr ))。
*********************************************************************
sets(集合)类型及操作(好友推荐、blog、tag功能):
smembers myset#查看myset集合中所有元素值。
sadd myset "hello"#向mysets集合中添加一个值hello
srem myset "hello"#删除myset集合中名称为hello的元素。
spop myset #随机弹出并返回mysets中的一个元素。
sdiff myset2 myset3#返回myset2中的与myse
相关文章:

Redis使用方式
一、Redis基础部分: 1、redis介绍与安装比mysql快10倍以上 *****************redis适用场合**************** 1.取最新N个数据的操作 2.排行榜应用,取TOP N 操作 3.需要精确设定过期时间的应用 4.计数器应用 5.Uniq操作,获取某段时间所有数据排重值 6.实时系统,反垃圾系统7.P…...
无主之地3重型武器节奏评分榜(9.25) 枪械名 红字效果 元素属性 清图评分 Boss战评分 泛用性评分 特殊性评分 最终评级 掉落点 掉率 图片 瘟疫传播
无主之地3重型武器节奏评分榜(9.25) 枪械名 红字效果 元素属性 清图评分 Boss战评分 泛用性评分 特殊性评分 最终评级 掉落点 掉率 图片 瘟疫传播者 发射巨大能量球,能量球会额外生成追踪附近敌人的伴生弹 全属性 SSS SSS SSS - T0 伊甸6号-…...
什么是编程什么是算法
1.绪论 编程应在一个开发环境中完成源程序的编译和运行。首先,发现高级语言开发环境,TC,Windows系统的C++,R语言更适合数学专业的学生。然后学习掌握编程的方法,在学校学习,有时间的人可以在网上学习,或者购买教材自学。最后,编写源程序,并且在开发环境中实践。 例如…...
【c++】函数
文章目录函数的定义函数的调用值传递常见样式函数的声明函数的分文件编写函数的作用: 将一段经常使用的代码封装起来,减少重复代码。 一个较大的程序,一般分为若干个程序块,每个模板实现特定的功能。 函数的定义 返回值类型 函数…...
[golang gin框架] 1.Gin环境搭建,程序的热加载,路由GET,POST,PUT,DELETE
一.Gin 介绍Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快,如果你是性能和高效的追求者,推荐你使用 Gin 框架.Gin 最擅长的就是 Api 接口的高并发,如果项目的规模不大,业务相对简单,这…...

【开源】祁启云网络验证系统V1.11
简介 祁启云免费验证系统 一个使用golang语言、Web框架beego、前端Naive-Ui-Admin开发的免费网络验证系统 版本 当前版本1.11 更新方法 请直接将本目录中的verification.exe/verification直接覆盖到你服务器部署的目录,更新前,请先关闭正在运行的验…...

震源机制(Focal Mechanisms)之沙滩球(Bench Ball)
沙滩球包含如下信息: a - 判断断层类型,可根据球的颜色快速判断 b - 判断断层的走向(strike),倾角(dip) c - 确定滑移角/滑动角(rake) 走向 ,倾角,滑移角 如不了解断层的定义,可以先阅读:震…...
C++入门:多态
多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。1、纯虚函数声明如下: virtual void funtion1()0; 纯…...
华为OD真题_工位序列统计友好度最大值(100分)(C++实现)
题目描述 工位由序列F1,F2…Fn组成,Fi值为0、1或2。其中0代表空置,1代表有人,2代表障碍物。 1、某一空位的友好度为左右连续老员工数之和 2、为方便新员工学习求助,优先安排友好度高的空位 给出工位序列,求所有空位中友好度的最大值。 输入描述 第一行为工位序列:F1,F…...
[ruby on rails]MD5、SHA1、SHA256、Base64、aes-128-cbc、aes-256-ecb
md5 puts Digest::MD5.hexdigest(admin) sha1 require digest/sha1 puts Digest::SHA1.hexdigest(admin)base64 require base64 code Base64.encode64(admin) source Base64.decode64(code)aes-128-cbc # base64 解密数据 session_key Base64.decode64(session_ke…...
《NFL星计划》:拉斯维加斯突袭者·橄榄1号位
拉斯维加斯袭击者(英语: Las Vegas Raiders)又译拉斯维加斯侵略者或拉斯维加斯突击者,是一支主场位于美国内华达州拉斯维加斯的职业美式橄榄球球队,属全国橄榄球联盟 (NFL) 的美国橄榄球联合会 (AFC) 西区。实际上&…...

韩顺平Linux基础学习(1)
内容概括...

Rust学习入门--【6】Rust 基础语法
Rust 基础语法 变量,数据类型,注释,函数和控制流,这些是大部分编程语言都具有的编程概念。 本节将学习理解这些概念。 变量 Rust 是强类型语言,但具有自动判断变量类型的能力。这很容易让人与弱类型语言产生混淆。…...

LINUX提权入门手册
前言 发点存货 LINUX权限简介 在学习提权之前我们先了解一下linux里面的权限我们使用命令: ls -al即可查看列出文件所属的权限: 文件头前面都有一段类似的字符,下面我们仔细分析一下里面符号分别代表什么。 -rw-r--r-- 1 root root 第一个符号-的…...

MSI_MSI-X中断之源码分析
MSI_MSI-X中断之源码分析 文章目录MSI_MSI-X中断之源码分析一、 怎么发出MSI/MSI-X中断1.1 在RK3399上体验1.1.1 安装工具1.1.2 查看设备MSI-X信息1.1.3 验证MSI-X信息二、 怎么使用MSI/MSI-X三、 MSI/MSI-X中断源码分析3.1 IRQ Domain创建流程3.1.1 GIC3.1.2 ITS3.1.3 PCI MSI…...

Docker--consul
目录 前言 一、Consul 简介 1.1、 consul 概述 1.2 、consul 的两种模式 1.3、consul 提供的一些关键特性 二、Consul 容器服务更新与发现 三、consul 部署 3.2、查看集群信息 四、registrator服务器 consul-template 五、consul 多节点 前言 服务注册与发现是微服…...

ESP-01S使用AT指令连接阿里云
ESP-01S使用AT指令连接阿里云 烧录MQTT AT固件 出厂的ESP-01S是基本的AT指令固件,没有MQTT的,所以无法通过MQTT指令与云平台通信,需要烧录固件(如果测试到有MQTT相关的指令,则不用重新烧录固件) 固件烧录…...

【Kafka】【三】安装Kafka服务器
Kafka基本知识 Kafka介绍 Kafka是最初由Linkedin公司开发,是⼀个分布式、⽀持分区的(partition)、多副本的 (replica),基于zookeeper协调的分布式消息系统,它的最⼤的特性就是可以实时的处理 …...
关于适配器模式,我遗漏了什么
近期有些tasks需要 重构or适配 老的代码。 与其向上面堆💩,不如优雅的去解决。 首先我的问题在于,错误的把 堆屎的操作 ,当作了适配器模式的操作。 比如原函数入参,需要更改某个属性,把这种操作外包一层…...

SQL Serve 日志体系结构
SQL Server 事务日志记录着 undo 及 redo 日志,为了保证数据库在崩溃后恢复,或者在正常数据库操作期间进行回滚,保证数据库事务完整性和持久化。如果没有事务日志记录,数据库在事务上将不一致,并且在数据库崩溃后可能导…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...