Redis 命令

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis 命令


Redis

定义

Redis是一个高速缓存数据库,是一种key-value(键值对)形式的存储系统,非关系型数据库

特点

Redis的数据 是放在内存里的,所以读写会很快,Redis才能实现持久化(RDB、AOF)

支持持久化

支持多种数据结构

支持数据备份

五种数据结构

string

单key:单value (username:张三)

常用指令(这里简单举几个例子 )

  1. 将string类型的数据设置到redis中:set 键 值
    保存张三:set name zhangsan
  2. 从redis中获取string类型的数据:get 键
    获取键名为name的值:get name

list

单key:多有序value (contacts:12534,XXX1,XXX2)

  1. 将一个或者多个值依次插入到列表的表头(最左侧):lpush key value [value]
    lpush list01 1 2 3 结果:3 2 1
  2. 获取指定列表中的指定下标区间的元素:lrange key startIdex endIndex
    range list01 1 2 结果:2 1
  3. 从指定列表中移除并且返回表头元素(最左侧元素):lpop key
    lpop list02
  4. 获取指定列表的长度:llen key
    llen list02
  5. 从指定列表中移除并返回表尾元素:rpop key
    rpop list02

set

单key:多无序value (city: bj、sh、cq、tj)

  1. 将一个或者多个元素添加到指定的集合中:sadd key value [value value …] (返回成功插入的元素个数)
    sadd set01 a b c a 结果:a b c
  2. 获取指定集合中所有的元素:smembers key
    smembers set01
  3. 获取指定集合的长度(元素的总个数):scard key
    scard set01
  4. 移除指定集合中一个或者多个元素:srem key member [member member …](不存在的元素会被忽略,返回成功移除的元素个数)
    srem set01 b d m

hash

单key:对象(属性:值) 存储对象 (student id:1001,name:zhangsan) (适合用于存储对象)

  1. 将一个或者第一个field-value对设置 到哈希表汇总:hset key filed1 value [filed2 value2] (如果key field已经存在,把value会把以前的进行覆盖)
    hset stu1001 name zhangsan age 20
  2. 获取指定哈希表汇总指定field的值 :hget key field
    hget stu1001 id
  3. 批量将多个field-value对设置到哈希表中:hmset key filed1 value [filed2 value2]
    hset stu1002 id 1001 name zhangsan age 20
  4. 获取指定哈希表中所有的field和value:hgetall key
    hgetall stu1001
  5. 将指定哈希表中删除一个或者多个field:hdel key field1 field1
    hdel stu1002 name age

zset

单key:多有序value (city:2000 bj) 自定义排序规律(有序集合,本质上是集合,所有元素不能重复, 每一个元素都关联一个分数,分数可以重复)

  1. 将一个或者多个member及score值加入有序集合 :zadd key score member score1 member1(如果元素以存在 ,则把分数覆盖)
    zadd zset01 20 z1 30 z2 50 z3 40 z4
  2. 获取指定有序集合中指定下标区间的元素:zrange key startIndex endIndex
    zrange zset01 0 -1 withscores
  3. 删除指定有序集合中一个或者多个元素:zrem key member member1…
    zrem zset01 z3 z4
  4. 获取指定有序集合中所有元素的个数:zcard key
    zcard zset01

事务

定义

把一组数据库命令放在一起执行,保证操作原子性,要么同时成功,要么同时失败。

redis的事务:允许把一组redis命令放在一起,把命令进行序列化,然后一起执行,保证部分原子性。

multi

用来标记一个事务的开始。

multi

set k1 v1

set k2 v2

exec

用来执行事务队列中所有的命令。

exec

discard

清楚所有已经压入队列中的命令,并且结束整个事务。

discard

redis事务只能保证部分原子性

如果一组命令中,在压入事务队列过程中发生错误的命令,则本事务中所有的命令都不执行,能够保证事务的原子性。

multi

set k3 v3

seta kk vv

set k4 v4

exec

使用Java连接redis进行操作

  1. 创建一个maven项目
  2. 在pom文件中添加redis依赖
<dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>4.2.3</version>
        </dependency>
    </dependencies>
  1. 创建一个类,通过jedis访问redis,放入下面的这段代码
public static void main(String[] args) {
        //连接redis:
        Jedis jedis=new Jedis("IP",端口);
//        Set<String> keys= jedis.keys("name");
//        for (String key:keys){
//            System.out.println(key);
//        }
        String name = jedis.get("name");
        System.out.println(name);
        if(name.equals("zhangsan")){
            System.out.println("成功获取到张三");
        }
    }

运行当前类,在控台中即可看到通过redis查询到的数据

redis常用指令

关闭虚拟机

shutdown -h now

启动redis后台服务

redis-server &

启动redis客户端

redis-cli

启动指定IP和端口的:redis服务

redis-cli -h xxxx -p 6380

关闭指定IP和端口的:redis服务

redis-cli -h xxxx -p 6380 shutdowm

关闭redis

redis-cli shutdown

查看redis是否启动

ps -ef |grep redis

查看redis配置文件

vim redis.conf

需要进行修改、删除、新增时,先按e键,进行编辑,编辑完成后按 :wq保存即可

查看虚拟机ip地址

ip addr

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
NoSQL Java Redis
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
|
1月前
|
存储 消息中间件 NoSQL
Redis命令详解以及存储原理
Redis命令详解以及存储原理
|
2月前
|
存储 缓存 NoSQL
Redis 全局通用命令整理
Redis 全局通用命令整理
56 10
|
28天前
|
SQL 缓存 NoSQL
【Azure Redis 缓存】使用Azure Redis服务时候,如突然遇见异常,遇见命令Timeout performing SET xxxxxx等情况,如何第一时间查看是否有Failover存在呢?
【Azure Redis 缓存】使用Azure Redis服务时候,如突然遇见异常,遇见命令Timeout performing SET xxxxxx等情况,如何第一时间查看是否有Failover存在呢?
|
28天前
|
缓存 监控 NoSQL
【Azure Redis 缓存】Azure Redis出现了超时问题后,记录一步一步的排查出异常的客户端连接和所执行命令的步骤
【Azure Redis 缓存】Azure Redis出现了超时问题后,记录一步一步的排查出异常的客户端连接和所执行命令的步骤
|
29天前
|
缓存 NoSQL 测试技术
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
|
2月前
|
存储 JSON NoSQL
Redis常见命令大全
【7月更文挑战第30天】
17 3
|
2月前
|
NoSQL Redis 索引
Redis 中ZSET数据类型命令使用及对应场景总结
Redis 中ZSET数据类型命令使用及对应场景总结
47 2
|
1月前
|
缓存 NoSQL Redis
Redis AOF重写问题之正常响应用户命令如何解决
Redis AOF重写问题之正常响应用户命令如何解决
|
2月前
|
NoSQL Redis
Redis set数据类型命令使用及应用场景使用总结
Redis set数据类型命令使用及应用场景使用总结
32 1