redis安装和基本数据类型
1. 安装
1.1 安装包
从官网下载安装包本文下载的是最新的7.0.4版本,linux为centos7
地址:https://github.com/redis/redis/archive/7.0.4.tar.gz
1.2 上传到/usr/local并 解压安装包
cd /usr/local
tar -zxvf redis7.0.4.tar.gz
cd redis.7.0.4
1.3 查看README.md
从中可以得到redis编译安装的步骤
1.4 编译
make
cd src ..生成了可执行程序
make install PREFIX=/usr/local/redis7 指定redis执行文件的位置
vi /etc/profile 配置redis环境变量,让执行命令可以在任意位置执行
... export REDIS_HOME=/usr/local/redis7
... export PATH=$PATH:$REDIS_HOME/bin
source /etc/profile 让环境变量生效
1.4.1 make会报错,没有安装gcc环境
....yum install gcc .... make distclean 重编以前需要clean make
1.5 将redis配置到服务中去
cd utils
./install_server.sh (可以执行一次或多次)
- 一个物理机中可以有多个redis实例(进程),通过port区分
- 可执行程序就一份在目录,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源
- service redis_6379 start/stop/stauts > linux /etc/init.d/****
- 脚本还会帮你启动!
5. ,ps -fe | grep redis 查看 redis 的进程
不需要更改路径的话,选择默认的安装
1.5.1 执行 install_server.sh遇到的问题
1.5.2解决
注释调下图位置的代码
2 数据类型
2.1 string
在Redis命令行中执行help @string 查看string相关命令
2.1.1 incr实际应用
显示数据value类型
type key
redis 编码 string 为例,其底层实现就可以分为 3 种: int , embstr , raw
OBJECT ENCODING k1
2.1.2 bitmap
2.1.2.1 setbit
表示设置一个key 值是一个二进制位就是0或者1 ,offset表示的是这个二进制位的偏移量是多少,显示的值是ascii码
图解:
2.12.2 bitpos
找到在给定范围内的第一个 二进制位出现的位置
下图中第一个1表示的是查找的二进制位,第二个1表示的是第几个字节
2.12.3 bitcount
表示的是给定字节范围内,二进制位1出现的次数
2.12.4 bitop
bitop 第一个参数 operation 值为 and 或者or and表示按位与操作,or表示的是按位或操作 第二个参数目标key表示接收的key 后面的是指定操作的两个key
下图 表示将两个key进行按位与操作
按位与操作的意思就是有0则0 双1得1
2.13 bitmap实际应用
需求:有用户系统,统计用户登录天数,且窗口随机
setbit sean 1 1 //表示一年中第一天登录
setbit sean 7 1 //表示一年中第7天登录
setbit sean 364 1
STRLEN sean
BITCOUNT sean -2 -1
需求:
京东就是你们的,618做活动:送礼物大库备货多少礼物
假设京东有2E用户
僵尸用户冷热用户/忠诚
用户活跃用户统计!随即窗口比如说 1号~3号 连续登录要去重
setbit 20220101 1 1 //表示1号用户在20220101登录
setbit 20220102 1 1 //表示1号用户在20220102登录
setbit 20220102 7 1 // 表示7号用户在20220102登录
bitop or destkey 20220101 20220102 // 对两个key进行按位或运算
BITCOUNT destkey 0 -1 // 计算用户数
2.2 List 类型
2.2.1 图解
2.2.1.1 list中栈的实现
同向命令 先进后出
lpush k1 a b c d e f g
lpop k1 1
2.2.2.2 list实现队列
反向命令,先进先出
lpush k1 a b c d e f g
rpop k1 1
2.2.2.3 list 数组
lindex key 索引位置
取出对应位置的值
lset key 索引位置 替换值
修改对应位置索引的值
ltrim 去掉list 两边的值
2.2.2.4 阻塞,单播队列 FIFO
blpop ooxx o
rpush ooxx hello
2.3 hash 类型
就是键值对的数据结构
2
2.4 set 集合
无序和随机性的,会去重
增加元素
删除元素
两个元素的交集 SINTER
将两个元素交集存在一个key上面 SINTERSTORE
两个元素并集 sunion
两个元素差集
2.4.1 实际应用场景
- 抽奖
需求:奖品3个,抽奖人数10人
用srandmember 实现,当srandmember key 负数 这个情况下,数据会有重复的出现,并且如果人数大于key里面的数量,那么会补全人数,如第二张图片
- 年会抽奖奖品,一个个礼物抽,比方也是10个人
用spop每次弹出一个随机人
2.5 sorted set 有序集合
相关操作
sorted_set的排序是通过跳跃表实现的,什么是跳跃表,参考下面的博客
地址:跳跃表
redis安装和基本数据类型相关推荐
- NoSQL概述-Redis安装-常用五大数据类型-概述Bitmaps,HyperLogLog,Geospatial和redis.conf 基本解析
NoSQL 概述 NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL",泛指 非关系型的数据库. NoSQL不依赖业务逻辑方式存储,而以简单的key-valu ...
- redis(一) 安装以及基本数据类型操作
redis(一) 安装以及基本数据类型操作 redis安装和使用 redis安装 wget http://download.redis.io/redis-stable.tar.gz tar zxvf ...
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)...
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取 ...
- Redis-cluster集群【第一篇】:redis安装及redis数据类型
Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...
- 项目1在线交流平台-4. 使用radis高性能储存方案-1.redis入门-特点、安装与支持数据类型
文章目录 1.为何使用redis 1.1 NoSQL NoSQL数据库特点 常见NoSQL数据库 1.2 什么是redis,有何特点 1.3 为何选用redis 2. redis的安装与使用 2.1 ...
- redis安装、持久化、数据类型、常用操作、操作键值、安全设置、慢查询日志、存储session、主从配置、集群介绍、集群搭建配置、集群操作,php安装redis扩展...
21.9 redis介绍 21.10 redis安装 21.11 redis持久化 21.12 redis数据类型 21.13/21.14/21.15 redis常用操作 21.16 redis操作键 ...
- Redis缓存的安装及基本数据类型命令的使用
Redis基础 Redis 是一个开源的.遵循 BSD 协议的.基于内存的而且目前比较流行的键值数据库(key-value database),是一个非关系型数据库, redis 提供将内存通过网 ...
- redis介绍, redis安装, redis持久化, redis数据类型
redis介绍 Redis和Memcached类似,也属于k-v数据存储 Redis官网redis.io, 当前最新稳定版4.0.1 支持更多value类型,除了和string外,还支持hash.li ...
- 【Redis】Redis安装、应用场景、数据类型、配置文件(很全)、发布订阅、事务、分布式锁、持久化、主从复制、集群等
文章目录 Redis笔记 Redis 介绍 应用场景 相关技术 安装 Redis 操作及数据类型 Redis 键操作(Key) Redis 字符串(String) Redis 列表(List) Red ...
最新文章
- 自己写的一个测试函数执行效率的单元(test on Delphi 7)
- Linux下对MySQL数据库的常见操作【创建】【删除】【导入数据库】
- tomcat使用redis存储共享session
- python中的json注意事项
- 搞懂 SQL 查询优化原理分析,秒速处理大数据量查询
- js分页--存储数据并进行分页
- 十年沉淀,阿里云发布全球领先的对象存储OSS可用性SLA
- CCNA Cisco 安全配置
- python 异常学习2
- python用matplotlib画雷达图_Matplotlib绘制雷达图和三维图的示例代码
- Onvif协议学习:12、修改分辨率
- 华为网络技术大赛模拟题目
- gentoo适合做服务器系统吗,Mandriva、Gentoo发行版
- 《天龙八部》通关攻略 一
- ffmpeg -比特率,帧率和文件大小
- 小学计算机上机评分表,海安市实验小学信息技术学科素养考核方案
- 华东交通大学计算机考研资料汇总
- 做工作必须将心比心——感谢译者陈浩对我们的批评
- 计算机如何调成音乐,如何调出适用于我的均衡器设置?
- Aria2远程下载方案部署(CentOS7+Aria+AriaNG+Nginx)