Redis

基础操作

启动

在 redis 所在目录,打开 cmd 然后输入 redis-server.exe redis.windows.conf 回车,tab可以补全

退出

ctrl + c

指定连接

redis-cli.exe -h localhost -p 6379,指定连接哪个地方、哪个端口

修改密码

去掉 # requirepass foobared 前面的 #

requirepass 123456 指定密码

redis-cli.exe -h localhost -p 6379 -a 123456

数据类型

字符串

普通字符串,Redis 中最简单的数据类型

哈希

也叫散列,类似 Java 中的 HashMap 结构

列表

按照插入顺序,可以有重复元素,类似于 Java 中的 LinkedList

集合

无序元素,没有重复元素,类似于 Java 中的 HashSet

有序集合

集合中每个元素关联一个分数,根据分数升序排序,没有重复元素

常用命令

字符串操作

set kye value 设置指定 key 的值

get key 获取指定 key 的值

setex key seconds value 设置指定 key 的值,并将 key 的过期时间设为 seconds 秒

setex key value 只有在 key 不存在时设置 key 的值

哈希操作

hast key field value 将哈希表 key 中的字段 field 的值设为 value

hget key field 获取存储在哈希表中指定字段的值

hdel key field 删除存储在哈希表中指定的字段

hkeys key 获取哈希表中所有字段

hvals key 获取哈希表中所有值

列表操作

lpush key value1 value2 将一个或多个值插入到列表头部

lrange key start stop 获取列表指定范围内的元素

rpop key 移除并获取列表最后一个元素

llen key 获取列表长度

集合操作

sadd key member1 member2 向集合添加一个或多个成员

smembers key 返回集合中的所有成员

scard key 获取集合的成员数

sinter key1 key2 返回给定所有集合的交集

sunion key1 key2 返回所有给定集合的并集

srem key member1 member2 删除集合中一个或多个成员

有序集合操作

zadd key score1 member1 score2 member2 向有序集合添加一个或多个成员

zrange key start stop withscores 通过索引区间返回有序集合中指定区间内的成员

zincrby key increment member 有序集合中对指定成员的分数加上增量 increment

zrem key member member ... 移除有序集合中的一个或多个成员

通用命令

keys pattern 查找所有符合给定模式的 key

exists key 检查给定 key 是否存在

type key 返回 key 所存储的值的类型

del key 该命令用于在 key 存在时删除 key

在Java中操作

java 复制代码
    /**
     * 操作字符串类型数据
     */
    @Test
    public void testString(){
        // set get setex setnx
        redisTemplate.opsForValue().set("city", "北京");
        String city = (String) redisTemplate.opsForValue().get("city");
        System.out.println(city);
        redisTemplate.opsForValue().set("code", "1234", 3, TimeUnit.MINUTES);
        redisTemplate.opsForValue().setIfAbsent("lock", "1");
        redisTemplate.opsForValue().setIfAbsent("lock", "2");
    }
    
    /**
     * 操作哈希类型的数据
     */
    @Test
    public void testHash(){

        HashOperations hashOperations = redisTemplate.opsForHash();
        hashOperations.put("100", "name", "tom");
        hashOperations.put("100", "age", "20");

        String name = (String) hashOperations.get("100", "name");
        System.out.println(name);

        Set keys = hashOperations.keys("100");
        System.out.println(keys);

        List values = hashOperations.values("100");
        System.out.println(values);

        hashOperations.delete("100", "age");

    }
相关推荐
名不经传的养虾人7 分钟前
从0到1:企业级AI项目迭代日记 Vol.61|记忆不是越多越好,装一道门比装满更重要
数据库·人工智能·ai编程·ai工作流·企业ai
霸道流氓气质31 分钟前
Harness Engineering 从理论到实战:基于 Spring AI Alibaba 的完整实现指南
数据库·人工智能·spring·harness
linuxoffer33 分钟前
MYSQL回收碎片空间
数据库·mysql
名字还没想好☜1 小时前
Go 并发实战:用 channel 实现 worker pool
java·数据库·后端·golang·go
rebibabo1 小时前
Java高并发底层原理(六)—— 多核 CPU 如何保持缓存一致
java·缓存·cas·缓存一致性·cache line·longadder·mesi协议
nVisual1 小时前
nVisual:AI驱动的智能排障,平均响应时间缩短40%
android·人工智能·缓存
源图客2 小时前
Claude Code基础使用
服务器·前端·数据库
阿拉斯攀登2 小时前
RAG 性能优化:缓存、批量与并发
人工智能·缓存·性能优化·embedding·agent·loop·rag
白帽小丑11 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak13 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64