Redis 命令

本文涉及的产品
云数据库 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天前
|
Java Redis
redis-学习笔记(Jedis zset 简单命令)
redis-学习笔记(Jedis zset 简单命令)
10 3
|
2天前
|
Java Redis
redis-学习笔记(Jedis hash简单命令)
redis-学习笔记(Jedis hash简单命令)
9 1
|
2天前
|
存储 Java Redis
redis-学习笔记(Jedis set 简单命令)
redis-学习笔记(Jedis set 简单命令)
7 1
|
2天前
|
Java Redis
redis-学习笔记(Jedis list简单命令)
redis-学习笔记(Jedis list简单命令)
8 1
|
2天前
|
Java Redis
redis-学习笔记(Jedis string 简单命令)
redis-学习笔记(Jedis string 简单命令)
9 2
|
2天前
|
NoSQL Java Redis
redis-学习笔记(Jedis 通用命令)
redis-学习笔记(Jedis 通用命令)
13 1
|
2天前
|
存储 NoSQL 关系型数据库
redis-学习笔记(通用命令)
redis-学习笔记(通用命令)
9 0
|
3天前
|
存储 NoSQL 关系型数据库
Redis -- String 字符串, 计数命令,字符串操作
Redis -- String 字符串, 计数命令,字符串操作
11 0
|
3天前
|
存储 NoSQL 关系型数据库
Redis -- 开篇热身,常用的全局命令
Redis -- 开篇热身,常用的全局命令
17 0
|
11天前
|
NoSQL Redis 数据库
Redis中的常用命令非常丰富,涵盖了各种数据类型的基本操作以及服务器管理和维护的相关指令
【5月更文挑战第15天】Redis常用命令包括通用(如PING、SELECT)、键操作(KEYS、EXISTS、DEL)、字符串(SET、GET)、哈希(HSET、HGET)、列表(LPUSH、LPOP)、集合(SADD、SMEMBERS)和有序集合(ZADD、ZRANGE)等。这些命令用于数据操作及服务器管理,满足不同场景需求。了解更多命令,建议参考Redis官方文档。
25 2