在日常开发中,我们经常会遇到这样的问题:如何快速判断一个元素是否在一个超大集合中?比如,如何判断一个用户ID是否在黑名单中?如何防止恶意请求查询不存在的key导致数据库压力过大?
这里我将介绍Redis中一个非常实用的数据结构——布隆过滤器,它能够以极小的空间成本解决这类问题。
在日常开发中,我们经常会遇到这样的问题:如何快速判断一个元素是否在一个超大集合中?比如,如何判断一个用户ID是否在黑名单中?如何防止恶意请求查询不存在的key导致数据库压力过大?
这里我将介绍Redis中一个非常实用的数据结构——布隆过滤器,它能够以极小的空间成本解决这类问题。
在当今快速发展的互联网时代,Go语言因其卓越的性能、简洁的语法和强大的并发支持,已经成为Web开发的热门选择。然而,面对众多的开发框架,如何根据项目需求做出合理的技术选型,是每个Go开发者都需要面对的问题。
本文将全面介绍Go语言Web开发中常用的框架和库,涵盖HTTP路由、ORM、Redis和Elasticsearch四大类别,帮助你构建高效可靠的Web应用。
etcd 是一个高可用的分布式键值(key-value)数据库,etcd基于Go语言实现,在分布式系统被广泛应用。它的设计目标是为分布式系统提供一个高可用、强一致性且易于使用的基础组件。
这里直接使用官方已经编译好的。
指定版本,并使用curl下载:
ETCD_VER=v3.4.13
DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
列表(List),就是存放一组数据的列表,就相当于我们编程语言中所使用的数组。列表顺序就是插入的顺序,可以从列表的头部插入元素,也可以从尾部插入元素。
Redis 中一个列表最多包含 2 的 32 次方 - 1 (4294967295)个元素。
LPUSH 命令是向列表中插入一个或多个元素,是列表的头部插入。列表如果不存在则会自动创建。
散列,简而言之,就是将多个键值对存到一个redis键里边。相当于关系型数据库的一行,或者相当于文档型数据库中的文档。
批量设置/获取
HMSET 是同时将多个 field-value (域-值)对设置到散列的 key 中。
看过前几篇文章的同学,可能知道Redis支持的数据类型有字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 。
字符串类型是Redis中最基本的数据类型。
如何进入命令行这里还是赘述一下:
熟悉关系型数据库的同学都知道关系数据库有数据库、表的概念,正如我们的mysql,需要先创建数据库,然后创建表,那么redis有没有数据库呢?
答案当然是有的。
留意redis配置文件( /etc/redis/6379.conf )的同学可能看到里边有这么一个配置:
编辑redis配置文件,这里的配置为/etc/redis/6379.conf,根据自己的情况而定。
vim /etc/redis/6379.conf
找到以#requirepass 开头的这一行,去掉#号,如果没有可自行添加,修改为:
如果你还没有安装Redis,请先参考 Centos下Redis的安装与配置 。
首先我们切换到解压后的Redis目录
Redis,是个什么呢?
应一个朋友的邀请,接下来笔者将陆续推出Redis系列学习笔记,顺便巩固一下自己的redis知识。我相信,熟悉nosql的童鞋对Redis一定不陌生,也许你的项目中正在使用它,比如缓存、消息队列等。
Redis官网(https://redis.io )是这样介绍的:
Redis 没有官方的Windows版本,微软开源技术团队(Microsoft Open Tech group)开发和维护着 Win64 的版本,但并不建议用于生产环境。
这里主要介绍Centos下安装Redis,以及配置redis,后台运行以及自动启动等。
专业企业官网建设,塑造企业形象,传递企业价值
系统软件开发,用心思考,用心设计,用心体验
打破技术瓶颈,让不堪重负的项目起死回生
构建全渠道一体化运营能力,实现全链路数字化
文案撰写、营销策划,专注品牌全案
一站式解决企业互联网营销痛点和难题
以技术的力量,改变互联网
联系我们