Redis安装,数据类型及常用命令
安装
- 可以使用yum 安装,要先配置epel源
```
yum install -y redis
```
- 可以编译安装
```
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xf redis-5.0.5.tar.gz
cd redis-5.0.5/
make
```
redis 可执行文件
```
redis-benchmark #性能测试
redis-check-aof # 检查修复aof文件
redis-check-rdb # 检查修复rdb文件
redis-cli # redis的客户端
redis-sentinel # redis的集群
redis-server # redis的服务端
redis-trib.rb #集群管理
```
启动redis
```
./src/redis-server 默认端口是6379,默认启动会占用终端
```
性能测试
```
./src/redis-benchmark -q
PING_INLINE: 73855.24 requests per second
PING_BULK: 73800.73 requests per second
SET: 74074.07 requests per second
GET: 72833.21 requests per second
INCR: 73637.70 requests per second
LPUSH: 73855.24 requests per second
RPUSH: 70175.44 requests per second
LPOP: 72202.16 requests per second
RPOP: 74183.98 requests per second
SADD: 74962.52 requests per second
HSET: 75642.96 requests per second
SPOP: 73746.31 requests per second
LPUSH (needed to benchmark LRANGE): 74850.30 requests per second
LRANGE_100 (first 100 elements): 48379.30 requests per second
LRANGE_300 (first 300 elements): 24172.11 requests per second
LRANGE_500 (first 450 elements): 18670.65 requests per second
LRANGE_600 (first 600 elements): 15384.62 requests per second
MSET (10 keys): 78186.08 requests per second
默认是100000,50个同时发起连接
```
连接
```
./src/redis-cli
-h ip地址
-p 端口
-s 套接字
-a 密码
-n 指定redis的库
redis的命令是不区分大小写
```
redis的数据类型
- string
- hash
- list
- set
- zset
命令相关
### ping 用来测试redis是否连通,返回值是pong ### info 获取系统的信息 ### echo 打印内容,测试使用 ### quit 退出 ### select 切换redis的库,总共有16个,0-15 ### del 删除指定的一个或者多个key,不存在的key忽略 ### exists 判断key 是否存在,存在是1,不存在是0 ### expire key seconds 给指定的key设置存活时间,当key过期以后,就自动删除 ### ttl 查看key的存活时间,-2 key不存在 -1 永久生效 ### keys pattern 查找所有符合pattern 的key,支持通配符 ### move key db 移动当前的key到指定的db里面,成功返回1,失败返回0 ### pexpire key 毫秒 给一个key 设置过期时间,单位是毫秒 ### pttl key 查看key的存活时间,但是为毫秒 ### randromkey 随机获取一个key,但是不删除,如果数据库为空,则返回空 ### rename 重命名key,如果源key不存在,则报错,如果目标key存在,则覆盖 ### renamenx 重命名key,如果源key不存在,则报错,如果目标key存在,则不变 ### type 查看key所存储的数据类型,如果没有这个key,则返回none
string
### set 设置key value 如果key存在,则覆盖,不存在,则新建 ex second 设置key的存活时间,单位是秒 px 毫秒 设置key的存活时间,单位是毫秒 nx 如果键不存在,则新建,如果存在,则返回nil xx 只有键存在,才能操作 ### get 获取key对应的value,只能获取一个,如果key存在,则返回值,如果key不存在,则返回nil ### mset 批量创建key vlaue对应关系,会覆盖已存在的key ### mget 批量获取key,如果不存在,则返回nil ### getset 给指定的key设置新value,并返回原来的value,如果key不存在,则返回nil ### strlen 返回value的长度 ### append 如果key存在,则追加,如果key不存在,则新建 ### incr 将key中存在的数加1,只能对数字有效 ### decr 将key中存在的数值减1,只能对数字有效 ### incrby 将key中存在的数值指定增加多少,只对数字有效 ### decrby 将key中存在的数值减少指定的值,只能对数字有效 #### getrange 切片,同python类似,不能使用步长 ### incrbyfloat(默认保留17位) 将key中存在的数值增加指定的浮点数
list
### lpush 将一个或者多个value插入到列表的头部 ### lpop 移除并返回列表key的头一个元素 ### lrange 查看列表指定的元素,全部显示是0,-1 ### rpush 将一个或者多个value插入到列表的尾部(最后边) ### rpop 删除尾部的值 ### rpushx 将value插入到key的尾部,key必须存在才可以 ### lpushx 将value插入到key的头部,key必须存在才可以 ### lindex 从表头开始,获取下标为index的value ### linsert 将value插入到key指定的元素前或者后 before 前 after 后 如果value不存在,则不操作 ### llen 获取列表长度 ### lrem 删除列表中的value - count > 0 从表头往表尾的方向查找,删除指定的个数
- count = 0 全部删除
- count < 0 从表尾的位置往表头的方向查找,删除指定的个数 ### lset 替换指定的索引位置的value,如果索引超出范围,则报错 ### ltrim 列表的切片
hash
{'db':{"redis":'redis.conf',"mysql':'my.cnf',"nginx":"nginx.conf"}}
### hset 给hash增加key value值 ### hlen 获取hash的长度 ### hget 获取某个hash里面key的value ### hgetall 获取所有的键值对 ### hmset 批量增加键值对 ### hmget 批量获取键值对 ### hsetnx 给指定的hash增加键值对,如果原来的field存在,则操作无效,如果不存在,则新增 ### hkeys 获取hash表中所有的field ### hvals 获取hash表中所有的value ### hdel 删除hash表中的一个或者多个field-value ### hexists 判断hash表中的field是否存在,如果存在,则为1,不存在则为0 ### hincrby 给hash表中的field增加指定的数值,只限于数字 ### hincrbyfloat 给hash表中的field增加指定的浮点,只限于数字
set
### sadd 给集合添加值,如果值存在,则什么都不操作,如果值不存在,则添加 ### SMEMBERS 获取集合所有的成员 ### scard 获取集合的个数 ### sdiff 获取两个集合的差集,前面存在,但是后面不存在的 ### sinter 获取两个集合的交集 ### sunion 获取两个集合的并集 ### SISMEMBER 判断元素是否在集合中,如果存在,则为1,如果不存在则为0 ### smove 将指定的元素从一个集合移动到另外一个集合中,如果源集合存在,则移动,如果不存在,则忽略,如果目标集合存在,直接移动,如果目标集合不存在,则新建集合并移动 ### spop 随机删除指定个数的元素,并把删除的元素打印出来 ### SRANDMEMBER 随机获取指定个数的元素 - 默认随机获取一个
- 如果count > 0,
- 如果count大于集合的总数的话,则全部取出
- 如果count小于集合总数的话,则随机取出count个
- 如果count<0,则随机count的绝对值次取出值 ### srem 删除指定的一个或者多个元素
Redis安装,数据类型及常用命令的更多相关文章
- Redis的数据类型及其常用命令
快速入门Redis 首先安装redis: windows下安装redis Linux下安装redis 1. 什么是redis Redis属于nosql(非关系型数据库) 关系型数据库是基于关系表的数据 ...
- Redis数据类型和常用命令
Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...
- redis学习-集合set常用命令
redis学习-集合set常用命令 1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...
- redis学习-散列表常用命令(hash)
redis学习-散列表常用命令(hash) hset,hmset:给指定散列表插入一个或者多个键值对 hget,hmget:获取指定散列表一个或者多个键值对的值 hgetall:获取所欲哦键值以及 ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- linux下安装nginx以及常用命令指南
安装nginx之前,要先在服务器上安装nginx运行所需要的依赖包 目录选择:一般选择 "/usr/local/" 1.安装PCRE库 离线安装包:https://pan.baid ...
- (Linux环境Kafka集群安装配置及常用命令
Linux环境Kafka集群安装配置及常用命令 Kafka 消息队列内部实现原理 Kafka架构 一.下载Kafka安装包 二.Kafka安装包的解压 三.设置环境变量 四.配置kafka文件 4.1 ...
- redis学习笔记01 — 基本介绍、安装配置及常用命令
redis--NoSQL的一种 为了解决高并发.高可用.高扩展.大数据存储等一系列问题而产生的数据库解决方案,就是NoSQL NoSQL,非关系型数据库,全名:Not Only Sql,它不能代替关系 ...
- redis数据类型及常用命令介绍(图文实例)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...
- redis笔记总结之redis数据类型及常用命令
三.常用命令 3.1 字符串类型(string) 字符串类型是Redis中最基本的数据类型,一个字符串类型的键允许存储的数据的最大容量为512MB. 3.1.1 赋值与取值: SET key valu ...
随机推荐
- 版本升级 | v1.0.13发布,传下去:更好用了
新发行版来啦~ 本次更新主要聚焦兼容性的提升及结果报告格式的增加,另外对部分解析逻辑及使用体验进行了优化.在这里特别鸣谢大佬@Hugo-X在社区仓库提交的PR~ 后续,OpenSCA项目组会继续致力于 ...
- iOS安全加固探讨:代码混淆、类名方法名混淆等方法
摘要:本文探讨了iOS平台下的安全保护,以及几种常见的加固方法,包括字符串加密.类名方法名混淆.程序代码混淆和加入安全SDK等.通过这些方法,我们可以有效地提高iOS应用的安全性. 引言: 随着智能手 ...
- C#通过泛型实现对子窗体的不同操作
private void button1_Click(object sender, EventArgs e) { FormOperate<object>();//调用FormOperate ...
- 05_二叉树的层次遍历II
二叉树的层序遍历 II 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 . (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root = [3,9,20 ...
- 第65篇 AJAX初识 校验用户名 登录示例 文件上传 csrftoken
1, 知识储备 2. AJAX的定义 异步的JavaScript和XML 使用场景: JavaScript和后端的数据传递 2.1原生的JavaScript实现AJAX 2.2 JQuery实现 2. ...
- 18-CMOS门电路
CMOS门电路 TTL是三极管构成的门电路,逐步被CMOS电路替代.CMOS电路能耗低.集成度高. CMOS反相器 CMOS管是由PMOS和NMOS组成,这里用的都是使用的增强型. COMS能够正常工 ...
- 电机控制和Linux驱动开发哪个方向更好呢?
电机控制和Linux驱动开发哪个方向更好呢? 先说结论:任何一个领域,就像世间的五行,阴阳结合,虚实结合,利弊结合.对于哪个更好,不能一概而论,最重要的是要搞清楚,你更适合哪个? 1.共鸣 当我看到这 ...
- [转帖]ntp导致的时钟回拨
https://zhuanlan.zhihu.com/p/587313130 我们的服务器时间校准一般是通过ntp进程去校准的.但由于校准这个动作,会导致时钟跳跃变化的现象.而这种情况里面,往往回拨最 ...
- Oceanbase部分参数学习与验证
Oceanbase部分参数学习与验证 字符集等参数查看 yum install obclient -y 然后使用客户端连接: obclient -h172.24.110.175 -P2881 -uro ...
- [转帖]【杂学第十二篇】oracledb_exporter监听oracle19c数据库出现libclntsh、ORA-12162、ORA-00942异常解决
http://www.taodudu.cc/news/show-4845374.html docker run -d --name oracledb_exporter --restart=always ...