Redis简单命令(部分示例代码)
一、redis文件夹下的可执行文件(文章尾部有示例代码)
可执行文件 |
作用 |
redis-server |
启动redis |
redis-cli |
redis命令行工具 |
redis-benchmark |
基准测试工具 |
redis-check-aof |
AOP持久化文件检测工具和修复工具 |
redis-check-dump |
RDB持久化文件检测工具和修复工具 |
redis-sentinel |
启动redis-sentinel |
二、可以使用两种方式连redis服务器
- 第一种:交互式方式
- $redis-cli -h 127.0.0.1 -p 6379
- set hello world
- get hello
- 第二种:命令方式
- get hello
三、常用命令
1、连接只剩相关的命令
- 默认直接连接 远程连接 -h 192.168.1.20 -p 6379
- ping:测试连接是否存活,如果正常会返回pong
- echo:打印
- select:切换到指定的数据库,数据库存索引号index用数字值指定,以0作为起始索引值
- quit:关闭连接
- auth:简单密码认证
2、服务器端相关命令
- time:返回当前服务器时间
- client list: 返回所有连接到服务器的客户端信息和统计数据 参见http://redisdoc.com/server/client_list.html
- client kill ip:port:关闭地址为
ip:port
的客户端 - save:将数据同步保存到磁盘
- bgsave:将数据异步保存到磁盘
- lastsave:返回上次成功将数据保存到磁盘的Unix时戳
- shundown:将数据同步保存到磁盘,然后关闭服务
- info:提供服务器的信息和统计
- config resetstat:重置info命令中的某些统计数据
- config get:获取配置文件信息
- config set:动态地调整 Redis 服务器的配置(configuration)而无须重启,可以修改的配置参数可以使用命令 CONFIG GET * 来列出
- config rewrite:Redis 服务器时所指定的
redis.conf
文件进行改写 - monitor:实时转储收到的请求
- slaveof:改变复制策略设置
3、发布订阅相关命令
- psubscribe:订阅一个或多个符合给定模式的频道 例如psubscribe news.* tweet.*
- publish:将信息
message
发送到指定的频道channel
例如
publish msg "good morning"
- pubsub channels:列出当前的活跃频道 例如PUBSUB CHANNELS news.i*
- pubsub numsub:返回给定频道的订阅者数量 例如PUBSUB NUMSUB news.it news.internet news.sport news.music
- pubsub numpat:返回客户端订阅的所有模式的数量总和
- punsubscribe:指示客户端退订所有给定模式。
- subscribe:订阅给定的一个或多个频道的信息。例如 subscribe msg chat_room
- unsubscribe:指示客户端退订给定的频道。
4、对key操作的命令
- exists(key):确认一个key是否存在
- del(key):删除一个key
- type(key):返回值的类型
- keys(pattern):返回满足给定pattern的所有key
- randomkey:随机返回key空间的一个
- keyrename(oldname, newname):重命名key
- dbsize:返回当前数据库中key的数目
- expire:设定一个key的活动时间(s)
- ttl:获得一个key的活动时间
- move(key, dbindex):移动当前数据库中的key到dbindex数据库
- flushdb:删除当前选择数据库中的所有key
- flushall:删除所有数据库中的所有key
5、对String操作的命令
- set(key, value):给数据库中名称为key的string赋予值value
- get(key):返回数据库中名称为key的string的value
- getset(key, value):给名称为key的string赋予上一次的value
- mget(key1, key2,…, key N):返回库中多个string的value
- setnx(key, value):添加string,名称为key,值为value
- setex(key, time, value):向库中添加string,设定过期时间time
- mset(key N, value N):批量设置多个string的值
- msetnx(key N, value N):如果所有名称为key i的string都不存在
- incr(key):名称为key的string增1操作
- incrby(key, integer):名称为key的string增加integer
- decr(key):名称为key的string减1操作
- decrby(key, integer):名称为key的string减少integer
- append(key, value):名称为key的string的值附加value
- substr(key, start, end):返回名称为key的string的value的子串
6、对list操作的命令
- rpush(key, value):在名称为key的list尾添加一个值为value的元素
- lpush(key, value):在名称为key的list头添加一个值为value的 元素
- llen(key):返回名称为key的list的长度
- lrange(key, start, end):返回名称为key的list中start至end之间的元素
- ltrim(key, start, end):截取名称为key的list
- lindex(key, index):返回名称为key的list中index位置的元素
- lset(key, index, value):给名称为key的list中index位置的元素赋值
- lrem(key, count, value):删除count个key的list中值为value的元素
- lpop(key):返回并删除名称为key的list中的首元素
- rpop(key):返回并删除名称为key的list中的尾元素
- blpop(key1, key2,… key N, timeout):lpop命令的block版本。
- brpop(key1, key2,… key N, timeout):rpop的block版本。
- rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
7、对Set操作的命令
- sadd(key, member):向名称为key的set中添加元素member
- srem(key, member) :删除名称为key的set中的元素member
- spop(key) :随机返回并删除名称为key的set中一个元素
- smove(srckey, dstkey, member) :移到集合元素
- scard(key) :返回名称为key的set的基数
- sismember(key, member) :member是否是名称为key的set的元素
- sinter(key1, key2,…key N) :求交集
- sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
- sunion(key1, (keys)) :求并集
- sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
- sdiff(key1, (keys)) :求差集
- sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
- smembers(key) :返回名称为key的set的所有元素
- srandmember(key) :随机返回名称为key的set的一个元素
8、对Hash操作的命令
- hset(key, field, value):向名称为key的hash中添加元素field
- hget(key, field):返回名称为key的hash中field对应的value
- hmget(key, (fields)):返回名称为key的hash中field i对应的value
- hmset(key, (fields)):向名称为key的hash中添加元素field
- hincrby(key, field, integer):将名称为key的hash中field的value增加integer
- hexists(key, field):名称为key的hash中是否存在键为field的域
- hdel(key, field):删除名称为key的hash中键为field的域
- hlen(key):返回名称为key的hash中元素个数
- hkeys(key):返回名称为key的hash中所有键
- hvals(key):返回名称为key的hash中所有键对应的value
- hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
四、示例代码(部分方法的示例,后续会补全)
public class MyRedis {
// 连接对象 localhost 为本机 如果是远程连接换位IP 6379是端口号
private Jedis jedis = new Jedis("localhost", 6379); /**
* 测试连接
*/
@Test
public void myTest1() {
System.out.println(jedis.ping());
jedis.set("hello", "第一个string");
System.out.println(jedis.get("hello"));
jedis.close();
} /**
* 操作String
*/ @Test
public void test_String() {
jedis.flushAll();
// 获取Jedis对象
// 添加一条数据
jedis.set("name", "王世磊");
// 根据key找到对应的value的值
System.out.println(jedis.get("name"));
// 多次对key进行设置值,则最后一次会覆盖之前的值(没有类似update)
// 字符串拼接
jedis.append("name", "很帅");
System.out.println(jedis.get("name"));
// 删除某个键
jedis.set("p3", "4");
jedis.del("p3");
// 同时设置多个键值对:获取值的方式同上
jedis.mset("m1", "1", "m2", "2", "m3", "3", "m4", "4", "m5", "5", "m6", "6", "m7", "7", "m8", "8");
System.out.println(jedis.mget("m1", "m2", "m3", "m4", "m5", "m6", "m7", "m8").toString());
// 假如值里面有数字(字符串形式),可以进行+1的操作(incr)
jedis.set("n1", "1");
jedis.incr("n1");
System.out.println(jedis.get("n1"));
// 进行-1的操作(decr)
jedis.decr("n1");
System.out.println(jedis.get("n1"));
// 某个值增加多少(incrBy)
jedis.set("p2", "4");
jedis.incrBy("p2", 5);
System.out.println(jedis.get("p2"));
// 某个值减少多少(decrBy)
jedis.incrBy("p2", 2);
System.out.println(jedis.get("p2"));
// 判断是否存在某个key(exists)
System.out.println(jedis.exists("a1"));
System.out.println(jedis.exists("p1"));
// 设置值的时间:存在5s(setex)
jedis.setex("s1", 5, "4");
// 查询值的存活时间:当 key不存在时,返回 -2,当key存在但没有设置剩余生存时间时,返回-1,
jedis.setex("s2", 200, "4");
jedis.set("s3", "4");
// 当key存在且设定有存活时间 以秒为单位,返回key的剩余生存时间(ttl)
System.out.println(jedis.ttl("s2"));
// 当key不存在
System.out.println(jedis.ttl("s100"));
// 当key存在 但是没有设定存活时间
System.out.println(jedis.ttl("s3"));
// 去掉key的时间设置:不再有失效时间(persist)
jedis.persist("s2");
System.out.println(jedis.ttl("s2"));
// 关闭连接
jedis.close();
} /**
* 操作List
*/
@Test
public void test_List() {
jedis.flushAll();
// 保存数据:lpush-->left push
jedis.lpush("l1", "数据1", "数据2", "数据3");
// 查询:第一个值是key,第二个值表示从0开始,第三个值表示结束(-1表示取全部)(lrange)
System.out.println(jedis.lrange("l1", 0, -1));
// userListA当中的值排列情况:["Kevin Durant","stephen curry","kobe bryant","king james"]
// 保存数据:rpush-->right push
jedis.rpush("userListA", "Kevin Durant", "stephen curry", "kobe bryant", "king james");
// 查询:第一个值是key,第二个值表示从0开始,第三个值表示结束(-1表示取全部)
System.out.println(jedis.lrange("userListA", 0, -1));
/*
* userListB当中值排列情况:["Kevin Durant","stephen curry","kobe bryant","king
* james","Wilt Chamberlain","John Smith","Karl Malone"]
*/
jedis.rpush("userListB", "Kevin Durant", "stephen curry", "kobe bryant", "king james", "Wilt Chamberlain",
"John Smith", "Karl Malone");
// 移除并返回列表key的头元素:lpop-->left pop
System.out.println(jedis.lpop("userListB"));
// 移除并返回列表key的尾元素:rpop-->right pop
System.out.println(jedis.rpop("userListB"));
// 删除key
jedis.del("l1");
System.out.println(jedis.get("l1"));
// 查询特定位置的值:idnex从0开始(lindex)
System.out.println(jedis.lindex("userListA", 1));
// 对list进行裁剪:只保留下标1-3的值,其他的全部删除,下标从0开始(ltrim)
System.out.println(jedis.ltrim("userListA", 1, 3));
System.out.println(jedis.lrange("userListA", 0, -1));
// 根据参数count的值,移除列表中与参数value相等的元素。
jedis.rpush("list1", "1", "1", "1", "1", "1", "2", "3", "4", "5", "6", "7", "8");
System.out.println(jedis.lrange("list1", 0, -1));
jedis.lrem("list1", 3, "1");
System.out.println(jedis.lrange("list1", 0, -1));
// lrem(key, count, value):删除count个key的list中值为value的元素
jedis.rpush("list2", "1", "1", "3", "1", "1", "2", "3", "2", "3", "3", "4", "3", "5", "3", "1", "4", "2", "6",
"7", "5");
// lpop(key):返回并删除名称为key的list中的首元素
jedis.lpop("list2");
System.out.println(jedis.lrange("list2", 0, -1));
// rpop(key):返回并删除名称为key的list中的尾元素
jedis.rpop("list2");
System.out.println(jedis.lrange("list2", 0, -1));
// 从users的右边弹出一个元素,把该元素左插入到players列表当中(rpoplpush)
jedis.rpoplpush("list2", "list2");
System.out.println(jedis.lrange("list2", 0, -1));
}
}
Redis简单命令(部分示例代码)的更多相关文章
- unity Dotween插件的简单介绍及示例代码
unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...
- Redis | Redis常用命令及示例总结(API)
目录 前言 1. Key(键) 1.1 键的基本操作功能 del move sort rename renamenx migrate 1.2 键的获取功能 type exists randomkey ...
- redis 简单命令操作
一.概述: 在该系列的前几篇博客中,主要讲述的是与Redis数据类型相关的命令,如String.List.Set.Hashes和Sorted-Set.这些命令都具有一个共同点,即所有的操作都是针对与K ...
- redis简单命令总结
1.连接到redis服务器:redis-cli -h 127.0.0.1 -p 6379 -a 密码 select index 切换 redis 数据库 flushdb 删除当前数据库所有的 key ...
- Redis 简单命令
1. 新增 set keyName "keyValue" 2. 获取 get keyName 查看所有Key keys * 3. 删除 //删除当前数据库中的所有Key flush ...
- redis 学习笔记(2)-client端示例代码
redis提供了几乎所有主流语言的client,java中主要使用二种:Jedis与Redisson 一.Jedis的使用 <dependency> <groupId>redi ...
- redis 的简单命令
以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...
- Redis学习记录及Jedis代码示例
文章目录 二.Redis简介 三.Redis安装 1. 下载并解压安装 2. 安装C语言编译环境 3. 修改安装位置 4. 编译安装 5.启动Redis服务器 ①默认启动 ②定制配置项启动 [1]准备 ...
- JDBC简单示例代码
本文章教程中将演示如何创建一个简单的JDBC应用程序的示例. 这将显示如何打开数据库连接,执行SQL查询并显示结果. 这个示例代码中涉及所有步骤,一些步骤将在本教程的后续章节中进行说明. 创建JDBC ...
随机推荐
- c#-PropertyChangingEventArgs
MSDN 解释连接:https://msdn.microsoft.com/zh-cn/library/system.eventargs.aspx#inheritanceContinued[Serial ...
- Celery框架实现异步执行任务
Celery 官方 Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/la ...
- 抖音抖一抖-SVG和CSS视觉故障艺术小赏
故障艺术,英文名称叫glitch,在很多赛博朋克作品中经常看到,其实就是故意表现一种显示设备的小故障效果,抖音的图标其实就是这种的效果,我们看下这个图标 这个图标中的红色和蓝色的偏移其实就是一种故障艺 ...
- 【Android - IPC】之ContentProvider简介
1.Content Provider简介 Content Provider是Android中提供的一种专门用于不同应用之间进行数据共享的方式,从这一点来看,它天生就适合IPC(Inter-Proces ...
- 部署高可用 schduler
目录 创建 kube-scheduler 证书和私钥 创建和分发 kubeconfig 文件 创建 kube-scheduler 配置文件 创建kube-scheduler启动文件 启动kube-sc ...
- X86架构CPU常识(主频,外频,FSB,cpu位和字长,倍频系数,缓存,CPU扩展指令集,CPU内核和I/O工作电压,制造工艺,指令集,超流水线与超标量)
1.主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度. CPU的主频=外频×倍频系数.很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差. ...
- Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time
启动Tomcat服务器时经常遇到这个错误, Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the ser ...
- 关于c++函数里面return的用法,关于调用的讲解
与下面的图片对比一下 可以看见在int b = test();d的时候cout<<"hello";就被调用了: cout<<b;只是返回return a的值 ...
- Docker数据挂载
Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很 ...
- springboot整合activiti
1.第一步添加bpmn文件得插件,不然没法查看和编辑bpmn文件,添加插件的方法各自百度即可,很简单 2.安装好bpmn插件后开始新建bpmn文件,也就是画流程图 一般是在代码中进行指定流程审批人的, ...