Redis客户端的基本使用和在java中使用

Redis 使用

安装

直接下载下来解压

https://github.com/microsoftarchive/redis/releases

文件夹中的文件说明

在这里插入图片描述

启动Redis服务

带配置文件启动

reids-server.exe redis.windows.conf

连接到redis进行操作

cmd>{%redis%}/redis-cli -h ip地址 -p 端口号

ip 默认为本地 -p 默认6379

cmd>{%redis%}/redis-cli

Redis的使用

String操作(重要)

设置值和获取值

set key value

get key

同时设置一个或多个 key-value 对

mset

返回所有(一个或多个)给定 key 的值

mget

在这里插入图片描述

将 key 中储存的数字值增1(key不存在,则初始化为0,再加1)

incr key

将 key 中储存的数字值减1(key不存在,则初始化为0,再减1)

decr key

自定义自增数量和自减数目

incrBy / decrBy

在这里插入图片描述

key操作(重要)

获取所有key列表

keys *

删除key

del key

设置key的过期时间(xx秒后过期)

expire key second

查看key的过期时间

ttl key

清空整个redis服务器数据,所有的数据库全部清空

flushall

清除当前库,redis中默认有16个数据库,名称分别为0,1,2…15

在这里插入图片描述

list操作(重要)

list集合可以看成是一个左右排列的队列(列表)

将一个或多个值 value 插入到列表 key 的表头(最左边/最右边)

lpush key value / rpush key value

移除并返回列表 key 的头(最左边/最右边)元素

lpop key / rpop key

返回列表 key 中指定区间内的元素,查询所有的stop为-1即可

lrange key start stop

根据count值移除列表key中与参数 value 相等的元素 count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。count = 0 : 移除表中所有与 value 相等的值

lrem key count value

在这里插入图片描述
返回列表 key 中,下标为 index 的元素

lindex key index

对一个列表进行修剪

ltrim key start stop

Quene(list)

存放都是字符串,由redis组织成各种数据结构

redis怎么实现栈(FILO)和队列(FIFO)

list控制同一边进,同一边出就是栈

list控制一边进,另一边出就是队列.

set操作(重要)

set集合是一个无序的不含重复值的队列

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略

sadd key member

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略

srem key member

返回集合 key 中的所有成员

smembers key

在这里插入图片描述

hash操作(重要)

添加一个name=>value键值对到key这个hash类型

hset key name value

获取hash类型的name键对应的值

hget key name

批量添加name=>value键值对到key这个hash类型

hmset key name1 key1 name2 key2

批量获取hash类型的键对应的值

hmget key name1 name2

返回哈希表 key 中的所有键

hkeys

返回哈希表 key 中的所有值

hvals

返回哈希表 key 中,所有的键和值

hgetall

Redis 订阅 事务(了解)

设置密码

–通过配置文件操作(掌握)

  1. 通过命令动态调整密码

    CONFIG SET 命令可以动态地调整 Redis 服务器的配置而无须重启,重启后失效
    CONFIG SET requirepass 123456 //将密码设置为123456
    CONFIG SET requirepass "" //清除密码
    AUTH 123456  //输入密码进行认证
    

在这里插入图片描述

  1. 在配置文件redis.widows.conf中增加一行代码
在配置文件redis.widows.conf中增加一行代码
requirepass 123456
将密码123456设置到配置文件中,redis启动时加载该文件,即可启用密码

在这里插入图片描述

java代码操作Redis(重要)

jar包

在这里插入图片描述

springboot (连接方式 – 只需要做配置) jedis

简单操作

 String host = "127.0.0.1";
 int port = 6379;
 int timeout = 1000;
 Jedis jedis = new Jedis(host, port, timeout);
 String set = jedis.set("name", "一一");
 System.out.println(jedis.get("name"));
 jedis.close();

连接池配置

在这里插入图片描述

如果创建一个对象后需要为他设置很多值,还不如先创建它配置对象并做完配置,然后再通过配置对象创建它

//1 创建jedispool配置对象
//2 做配置-四个
//3 创建jedispool
//4 通过jedispool获取连接
//5 执行操作
//6 释放连接
//7 摧毁连接池-如果是真正项目中它应该是一个受spring管理的单例

//1 创建jedispool配置对象
JedisPoolConfig config = new JedisPoolConfig();

//2 做配置-四个
config.setMaxIdle(2);
config.setMaxTotal(10);
config.setMaxWaitMillis(1*1000); //创建连接超时
config.setTestOnBorrow(true);//获取连接是测试连接是否畅通

//3 创建jedispool
//1*1000 获取连接超时时间
JedisPool pool = new JedisPool(config,"127.0.0.1",6379,1*1000,"admin");

//4 通过jedispool获取连接
Jedis resource = pool.getResource();

//5 执行操作
String s = resource.set("name", "这是一个测试");
System.out.println(resource.get("name"));

对key 操作

//查询所有的key   keys *
Set<String> keys = resource.keys("*");
System.out.println(keys);

对String操作 存值和取值

String s1 = resource.set("name", "一一");
System.out.println(resource.get("name"));

清空数据库

resource.flushDB();

对list集合操作

resource.lpush("stu","{name:yiyi}","{name:erer}","{name:sasa}" );
//0, -1  表示全部
List<String> stu = resource.lrange("stu", 0, -1);
System.out.println(stu);

对set集合操作

resource.sadd("stu","{name:yiyi}","{name:erer}","{name:sasa}" );
Set<String> stu = resource.smembers("stu");
System.out.println(stu);

对hash(map)集合操作

HashMap map = new HashMap();
map.put("name","yiyi");
map.put("age","18");
map.put("sex","true");
resource.hmset("user1",map);

List<String> hmget = resource.hmget("user1", "name", "age", "sex");
System.out.println(hmget);

sort排序操作 对数字

resource.lpush("num", "2","1","6","4","8","3");
System.out.println(resource.sort("num"));

SortingParams sortingParams = new SortingParams();
sortingParams.desc();
System.out.println(resource.sort("num", sortingParams));

字母的排序 根据ASCII码 (根据首字母)

resource.lpush("area","Chengdu","Changsha","Wuhan","Guangzhou");
SortingParams sortingParams1 = new SortingParams();
sortingParams1.alpha();
System.out.println(resource.sort("area", sortingParams1));

事务操作

Transaction multi = resource.multi();
multi.set("name","yiyi");
multi.set("age","21");
multi.incr("name");
multi.incr("age");
List<Object> results = multi.exec();
System.out.println(results);

资源释放

// 6 释放连接
jedis.close(); //底层做了兼容,如果是连接池操作就是释放,如果是连接操作就是关闭
// 7 摧毁连接池-如果是真正项目中它应该是一个受spring管理的单例
pool.destroy();
发布了60 篇原创文章 · 获赞 9 · 访问量 1974

猜你喜欢

转载自blog.csdn.net/qq_40629521/article/details/104090171