Redis 命令

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 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的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
这篇文章介绍了Redis的基本命令,并展示了如何使用Netty框架直接与Redis服务器进行通信,包括设置Netty客户端、编写处理程序以及初始化Channel的完整示例代码。
56 1
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
|
23天前
|
存储 NoSQL Java
Redis命令:列表模糊删除详解
通过本文的介绍,我们详细探讨了如何在Redis中实现列表的模糊删除。虽然Redis没有直接提供模糊删除命令,但可以通过组合使用 `LRANGE`和 `LREM`命令,并在客户端代码中进行模糊匹配,来实现这一功能。希望本文能帮助你在实际应用中更有效地操作Redis列表。
34 0
|
2月前
|
缓存 NoSQL 测试技术
Redis如何解决频繁的命令往返造成的性能瓶颈!
Redis如何解决频繁的命令往返造成的性能瓶颈!
|
2月前
|
缓存 NoSQL Redis
Redis命令:列表模糊删除详解
Redis命令:列表模糊删除详解
64 3
|
2月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
283 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
2月前
|
NoSQL Redis 数据安全/隐私保护
Redis 命令
10月更文挑战第15天
28 0
|
3月前
|
监控 NoSQL Redis
redis-server --service-install redis.windows.conf --loglevel verbose 命令的作用是什么?
redis-server --service-install redis.windows.conf --loglevel verbose 命令的作用是什么?
121 3
|
3月前
|
存储 缓存 NoSQL
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
76 0
|
4月前
|
存储 消息中间件 NoSQL
Redis命令详解以及存储原理
Redis命令详解以及存储原理
|
5月前
|
存储 缓存 NoSQL
Redis 全局通用命令整理
Redis 全局通用命令整理
68 10