在这里插入图片描述

hget('userinfo:shanghai:zhangsan', 'user')
.hget('user:刘永兴', 'user')

完整详细文档点击
简单的操作一下Redis数据库。

127.0.0.1:6379> info
info命令能查看关于 Redis 服务器的各种信息和统计数值

将全部客户端信息保存到文件

127.0.0.1:6379> client list
id=7863 addr=172.18.0.104:56836 fd=6150 name= age=72 idle=72 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=pingid=7864 addr=172.18.0.50:56262 fd=6151 name= age=72 idle=72 flags=N db=9 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=pingid=7865 addr=172.18.0.104:56840 fd=6152 name= age=72 idle=72 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping…

client list: 列出全部客户端信息.

插入数据

127.0.0.1:6379> set name wwl
OK

设置一个key-value对
在这里插入图片描述

查询数据

127.0.0.1:6379> get name
“wwl”

取出key所对应的value

删除键值

127.0.0.1:6379> del name
(integer) 1

删除这个key及对应的value

验证键是否存在

127.0.0.1:6379> exists name
(integer) 0

其中0,代表key不存在;1代表存在

1.1 set

设置 key 对应的值为 string 类型的 value。
例如我们添加一个 name= HongWan 的键值对,可以这样做:

127.0.0.1:6379> set name HongWan
OK

1.2 setnx

设置key对应的值为String列席的value。如果key已经存在,返回0,nx是not exist的意思。
例如我们添加一个 name= HongWan_new 的键值对,可以这样做:

127.0.0.1:6379> get name
“HongWan”
127.0.0.1:6379> setnx name HongWan_new
(integer) 0

由于原来 name 有一个对应的值,所以本次的修改不生效,且返回码是 0。

1.3 setex

设置 key 对应的值为 string 类型的 value,并指定此键值对应的有效期。
例如我们添加一个 haircolor= red 的键值对,并指定它的有效期是 10 秒,可以这样做:

127.0.0.1:6379> setex haircolor 10 red
OK
127.0.0.1:6379> get haircolor
(nil)

可见由于最后一次的调用是 10 秒以后了,所以取不到 haicolor 这个键对应的值。

1.4 setrange

设置指定 key 的 value 值的子字符串。
例如我们希望将 HongWan 的 126 邮箱替换为 gmail 邮箱,那么我们可以这样做:

127.0.0.1:6379> get name
“HongWan@126.com”
127.0.0.1:6379> setrange name 8 gmail.com
(integer) 17
127.0.0.1:6379> get name
“Hongwan@gmail.com”

其中的8是指从下标为8(包含8) 的字符开始替换

1.5 mset

一次设置多个 key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值
被设置。

127.0.0.1:6379> mset key1 HongWan1 key2 HongWan2
OK
127.0.0.1:6379> get key1
“HongWan1”
127.0.0.1:6379> get key2
“HongWan2”

1.6 msetnx

一次设置多个 key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值
被设置,但是不会覆盖已经存在的 key。

127.0.0.1:6379> get key1
“HongWan1”
127.0.0.1:6379> get key2
“HongWan2”
127.0.0.1:6379> msetnx key2 HongWan2_new key3 HongWan3
(integer) 0
127.0.0.1:6379> get key2
“HongWan2”
127.0.0.1:6379> get key3
(nil)

可以看出如果这条命令返回0,那么里面操作都会回滚,都不会被执行。

redis操作key每次都要输入name

        stringRedisTemplate.opsForValue().set("name","zhangsan");
        stringRedisTemplate.opsForValue().append("name","是一个好人");
        String s = stringRedisTemplate.opsForValue().get("name");
        System.out.println(s);

可以对key做一个绑定

        //对字符串类型key进行绑定 后续所有操作都是基于这个key的操作
        BoundValueOperations<String, String> nameValueOperations = stringRedisTemplate.boundValueOps("name");
        nameValueOperations.set("zhangsan");
        nameValueOperations.append("是一个好人");
        String s1 = nameValueOperations.get();
        System.out.println(s1);
        //对list set zset hash
        BoundListOperations<String, String> listsOperations = stringRedisTemplate.boundListOps("lists");
        listsOperations.leftPushAll("张三","李四","小陈");
        List<String> lists = listsOperations.range(0, -1);
        lists.forEach(list-> System.out.println(list));

redis设置已文件夹形式展示key,value

存储key时候可以使用 : 将其隔开,就是建立文件夹
在这里插入图片描述
一个:就代表一个文件夹
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐