安装

- 可以使用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安装,数据类型及常用命令的更多相关文章

  1. Redis的数据类型及其常用命令

    快速入门Redis 首先安装redis: windows下安装redis Linux下安装redis 1. 什么是redis Redis属于nosql(非关系型数据库) 关系型数据库是基于关系表的数据 ...

  2. Redis数据类型和常用命令

    Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...

  3. redis学习-集合set常用命令

    redis学习-集合set常用命令   1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...

  4. redis学习-散列表常用命令(hash)

    redis学习-散列表常用命令(hash)   hset,hmset:给指定散列表插入一个或者多个键值对 hget,hmget:获取指定散列表一个或者多个键值对的值 hgetall:获取所欲哦键值以及 ...

  5. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  6. linux下安装nginx以及常用命令指南

    安装nginx之前,要先在服务器上安装nginx运行所需要的依赖包 目录选择:一般选择 "/usr/local/" 1.安装PCRE库 离线安装包:https://pan.baid ...

  7. (Linux环境Kafka集群安装配置及常用命令

    Linux环境Kafka集群安装配置及常用命令 Kafka 消息队列内部实现原理 Kafka架构 一.下载Kafka安装包 二.Kafka安装包的解压 三.设置环境变量 四.配置kafka文件 4.1 ...

  8. redis学习笔记01 — 基本介绍、安装配置及常用命令

    redis--NoSQL的一种 为了解决高并发.高可用.高扩展.大数据存储等一系列问题而产生的数据库解决方案,就是NoSQL NoSQL,非关系型数据库,全名:Not Only Sql,它不能代替关系 ...

  9. redis数据类型及常用命令介绍(图文实例)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...

  10. redis笔记总结之redis数据类型及常用命令

    三.常用命令 3.1 字符串类型(string) 字符串类型是Redis中最基本的数据类型,一个字符串类型的键允许存储的数据的最大容量为512MB. 3.1.1 赋值与取值: SET key valu ...

随机推荐

  1. C# 内存缓存工具类 MemoryCacheUtil

    C# 内存缓存工具类 MemoryCacheUtil using System; using System.Collections.Concurrent; using System.Collectio ...

  2. 活动回顾|阿里云 Serverless 技术实战与创新广州站回放&PPT下载

    7月8日"阿里云 Serverless 技术实战与创新"广州站圆满落幕.活动受众以关注Serverless 技术的开发者.企业决策人.云原生领域创业者为主,活动形式为演讲.动手实操 ...

  3. freeswitch配置SBC的方案

    概述 freeswitch 是一款好用的开源软交换平台. 但是,fs不是专为SBC而开发的,所以需要做一些定制化的配置和开发. 本文主要介绍如何利用fs的基本功能配置一个简单的SBC方案,满足一般化需 ...

  4. Ceph学习笔记(1)- 架构概述

    简介 Ceph的目标是采用商业硬件来构建大规模的.具有高可用.高扩展.高性能的分布式存储系统,ceph具有如下特点: 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系 ...

  5. idea新建spring boot 项目右键无package及java类的选项

    新创建的spring boot项目,只有一个默认的资源目录及启动配置. 在 group 的目录下右键新建包路径时 ,发现没有package选项,也没有Java Class的选项: 解决办法: File ...

  6. centos7 systemctl配置开机自启动服务

    centos7使用systemctl替代原来/etc/init.d,按官方的说法是提高系统服务的运行效率.服务配置更加简单易用,对于一些自定义的服务来配置开机自启动,是真的香! 概念理解 它是服务管理 ...

  7. 云计算&虚拟化 技术名词汇总

    云计算&虚拟化 技术名词汇总 目录 云计算&虚拟化 技术名词汇总 虚拟化方向 QEMU/qemu VMM virtual machine monitor (虚拟机监管器) Hyperv ...

  8. Java-Enum常量特定方法

    OnJava8-Enum-常量特定方法 用枚举实现责任链模式 责任链(Chain Of Responsibility)设计模式先创建了一批用于解决目标问题的不同方法,然后将它们连成一条"链& ...

  9. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.1)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  10. ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载H264视频流

    前言: RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力, ...