首页 > 数据库 >Redis安装配置使用笔记

Redis安装配置使用笔记

时间:2023-08-18 18:02:01浏览次数:37  
标签:Redis redis System 笔记 println 安装 redisTemplate out

Redis 是一个基于内存的key-value结构数据库

基于内存存储,读写性能高

适用于存储热点数据(热点商品,资讯,新闻,秒杀系统)

 

1.使用Redis

1.在Linux上安装Redis

G(local 
$4: tar -zxvf redis-4.O.O.tar.gz -C 
$4: yum install gcc-c++ 
4.W\/usr/local/redis-4.O.O, ae: make 
N: make install

 

2.在win系统安装直接解压即可

 

 

3.启动Redis

Linux中在Redis目录下的src目录下直接运行  ./redis-server

 

4.连接Redis服务

Linux中在Redis目录下的src目录下直接运行  ./redis-cli

 

Redis操作的相关命令:

keys *   :查询所有存储的key

 

5.Redis服务优化

Linux中在Redis的根目录中修改 redis.conf

可以使用 /dae 搜索要修改的数据

 

从新启动服务,并且加载配置文件: src/redis-server ./redis.conf

 

6.设置Redis密码

Linux中,进入Redis.config配置文件,打开requirepass 这行代码设置后面的值,即完成了Redis的密码设置

 

7.远程登录Redis

Linux中,启动服务后,若想连接Redis使用,命令:

src/redis-cli -h localhost -p 6379

(本次登录为了测试在linux登录的,即用户名为本地地址localhost,端口为6379)

 

8.认证密码

进入Redis后若要操作redis,需要验证密码,使用指令:

auth password

 

也可以登录同时认证,使用命令:

src/redis-cli -h localhost -p 6379 -a password

 

9.允许Redis远程连接

修改 redis.conf 配置文件,查找 /bind 关键字,

把 bind ip地址  这行注释,这行默认代表只允许本地访问

 

10.6379接口防火墙问题

使用Linux指令开放6379端口即可解决。

firewall-cmd --zone=public --add-port=6379/tcp --permanent

 

11.登录远程redis

运行redis-server.exe

登录远程redis  ,使用指令:

 .\redis-cli.exe -h 192.168.41.135 -p 6379 -a 111111

 

 

2.Redis数据类型

value 
I am a String 
fieldl 
扁 瞓 2 
valuc2 
字 苻 串 ' string 普 通 字 符 串 , 常 用 
哈 希 hash 适 合 存 储 对 象 
列 丧 : list 按 照 插 入 顺 序 排 序 , 可 以 有 重 复 元 素 
隼 合 : set 无 序 集 合 , 没 有 重 复 元 素 
苤 序 犟 合 'sorted set 有 序 集 合 , 没 有 重 复 元 素

 

(1)使用list列表,顺序存放,可以做任务队列,将一些任务数据插入,并排列,顺序取出。

(2)有序集合可以应用在排行榜的相关开发

 

 

3.Redis常用命令(redis中文网 https://www.redis.net.cn)

1.redis中字符串的操作命令

string 
Redis 
• 
• 
0 
• 
SET key value 
GET key 
*TEX key seconds I 
SETNX key value 
iQA}EEkeyfifÄ, key seconds 
key key

(1)设置key的过期时间,可以应用在验证码之类的开发

(2)SETNX key value :可以应用于分布式锁

 

2.哈希 hash 操作命令

Redis hash E—TstringEfi field value 
• 
• 
• 
• 
HSET key field value 
HGET key field 
HDEL key field 
HKEYS key 
HVALS key 
HGETALL key 
key 
key field value 
key 
value 
valttc2

 

3.列表 list 操作命令

Redis 列 表 是 简 单 的 字 符 串 列 表 , 按 照 插 入 顺 序 排 序 , 常 用 命 令 : 
LPLJSH key valuel [value2) 
LRANGE key Start Stop 
RPOP key 
LLEN key 
BRPOP keyl [key2 ] timeout 
将 一 个 或 多 个 值 入 到 列 表 头 部 
获 取 列 表 指 定 范 围 内 的 元 素 
移 除 并 获 取 列 表 最 后 一 个 元 素 
获 取 列 表 长 度 
移 出 并 获 取 列 表 的 最 后 一 个 元 素 , 
或 发 现 可 弹 出 元 素 为 止 
如 果 列 表 没 有 元 素 会 阻 塞 列 表 直 到 等 待 超 时

 

 

 

4.集合 set 操作命令

Redisset 是 string 类 型 的 无 序 集 合 。 集 合 成 员 是 唯 一 的 , 这 就 意 味 着 集 合 中 不 能 出 现 重 复 的 数 据 常 用 命 令 : 
0 
0 
0 
0 
0 
SADD key memberl [member2] 
SMEMBERS key 
SCARD key 
SINTER keyl [key21 
SUNION keyl [key21 
SDIFF keyl [key2J 
SREM key memberl [member2] 
向 集 合 添 加 一 个 或 多 个 成 员 
返 回 集 合 中 的 所 有 成 员 
获 取 集 合 的 成 员 数 
返 回 给 定 所 有 集 合 的 交 集 
返 回 所 有 给 定 集 合 的 并 集 
返 回 给 定 所 有 集 合 的 差 集 
移 除 集 合 中 一 个 或 多 个 成 员

 

5.有序集合 sorted set 操作命令

Redis sorted set 有 序 集 合 是 string 类 型 元 素 的 集 合 》 且 不 允 许 重 复 的 成 员 。 每 个 元 素 都 会 关 联 一 个 doub 类 型 的 分 数 
(score) 。 redis 正 是 通 过 分 数 来 为 集 合 中 的 成 员 进 行 从 小 到 大 排 序 。 有 序 集 合 的 成 员 是 唯一的@ 但 分 数 却 可 以 重 复 。 
常 用 命 令 : 
ZADD key scorel memberl [score2 member21 
ZRANGE key Start Stop [WITHSCORES] 
ZINCRBY key increment member 
ZREM key member (member “ 刂 
向 有 序 集 合 添 加 一 个 或 多 个 成 员 , 或 者 更 新 已 存 在 成 员 的 
通 过 索 引 区 间 返 回 有 序 集 合 中 指 定 区 间 内 的 成 员 
有 序 集 合 中 对 指 定 成 员 的 分 数 加 上 增 量 increment 
移 除 有 序 集 合 中 的 一 个 或 多 个 成 员

 

6.Redis 通用命令

KEYS pattern 
EXISTS key 
TYPE key 
TTL key 
DEL key 
資 找 所 有 符 合 给 定 模 式 ( pattern) 的 key 
检 查 给 定 key 是 否 存 在 
返 回 key 所 储 存 的 值 的 类 型 
返 回 给 定 key 的 剩 余 生 存 时 间 ( TTL, time to live), 以 秒 为 单 位 
该 命 令 用 于 在 key 存 在 是 删 除 key

 

4.JAVA中使用Redis

只要在IDEA中导入jedis坐标即可

<dependency> 
O</version> 
</dependency>

 

Spring Data Redis 操作Redis

导入坐标

 

<!--springDateRedis-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

 

Spring Data Redis 
Spring Data : 
RedisTemplate, 
• 
• 
• 
ValueOperations: 
Setoperations: 
zsetoperations: 
HashOperations: 
Listoperations:

 

IDEA中Redis的操作代码

@Autowired

privateRedisTemplateredisTemplate;//Redis封装的类,对大量的Redisapi进行了封装

 

/**

*操作String类型的数据    ,可以存储一些String类型的缓存信息,例如:提供给页面的json信息

*/

@Test

publicvoidtestString(){

redisTemplate.opsForValue().set("city1","北京");

 

Objectcity=redisTemplate.opsForValue().get("city1");

System.out.println(city);

 

//设置key的有效时间

redisTemplate.opsForValue().set("key1","1234",10l,TimeUnit.SECONDS);

 

//仅在没有指定key时,才能设置该key的值

Booleankey1=redisTemplate.opsForValue().setIfAbsent("key1","1111");

}

 

/**

*操作Hash哈希类型的数据

*/

 

@Test

publicvoidtestHash(){

HashOperationshashOperations=redisTemplate.opsForHash();

 

//存值

hashOperations.put("001","name","zhangsan");

hashOperations.put("001","age","23");

hashOperations.put("001","sex","1");

//取值

Stringname=(String)hashOperations.get("001","name");

System.out.println(name);

 

//获取hash结构中的所有字段

Setkeys=hashOperations.keys("001");

for(Objectkey:keys){

System.out.println(key);

}

 

//获取hash结构中的所有值

Listvalues=hashOperations.values("001");

for(Objectvalue:values){

System.out.println(value);

}

}

 

/**

*操作List类型的数据

*/

@Test

publicvoidtestList(){

ListOperationslistOperations=redisTemplate.opsForList();

 

//存值

listOperations.leftPush("myList","a");

listOperations.leftPushAll("myList","b","c");

 

//取值

List<String>myList=listOperations.range("myList",0,-1);

for(Stringvalue:myList){

System.out.println(value);

}

 

//获取列表长度

Longsize=listOperations.size("myList");

intlsize=size.intValue();//转型为int类型

 

//遍历循环将队列中的所有数据取出

for(inti=0;i<lsize;i++){

//出队列,每取出一个数据当前数据在队列中删除

Objectelement=listOperations.rightPop("myList");

}

}

 

/**

*操作Set(无序集合)类型数据

*/

@Test

publicvoidtestSet(){

SetOperationssetOperations=redisTemplate.opsForSet();

 

//存值

setOperations.add("myset","a","b","c","a");

 

//取值

Set<String>myset=setOperations.members("myset");

for(Strings:myset){

System.out.println(s);

}

 

//删除成员

setOperations.remove("myset","a");

//从新获取

Set<String>myset2=setOperations.members("myset");

for(Strings:myset2){

System.out.println(s);

}

}

 

/**

*操作ZSet(有序集合)类型的数据

*/

@Test

publicvoidtestZset(){

ZSetOperationszSetOperations=redisTemplate.opsForZSet();

 

//存值

zSetOperations.add("myZset","a",10.0);

zSetOperations.add("myZset","b",9.0);

zSetOperations.add("myZset","c",8.0);

zSetOperations.add("myZset","d",7.0);

 

//取值

Set<String>myZset=zSetOperations.range("myZset",0,-1);

for(Strings:myZset){

System.out.println(s);

}

 

//修改分数

zSetOperations.incrementScore("myZset","d",20.0);

 

//删除成员

zSetOperations.remove("myZset","a","b");

//再次查询

Set<String>myZset1=zSetOperations.range("myZset",0,-1);

for(Strings:myZset1){

System.out.println(s);

}

}

 

/**

*通用操作,针对不同的数据类型都可以操作

*/

@Test

publicvoidtestCommon(){

//获取Redis中所有的key

Setkeys=redisTemplate.keys("*");

for(Objectkey:keys){

System.out.println(key);

}

//判断某个key是否存在

Booleankey1=redisTemplate.hasKey("key1");

System.out.println(key1);

//删除指定key

redisTemplate.delete("myList");

//获取指定key对应的value的数据类型

DataTypedataType=redisTemplate.type("myset");

System.out.println(dataType.name());

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:Redis,redis,System,笔记,println,安装,redisTemplate,out
From: https://blog.51cto.com/u_16230662/7139898

相关文章

  • PHP反序列化笔记(二)
    漏洞原理序列化和反序列化本身没有问题,但是如果反序列化的内容是用户可以控制的,且后台不正当的使用了PHP中的魔法函数,就会导致安全问题。当传给unserialize()的参数可控时,可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。存在漏洞的思路:一个类用于临时将......
  • 配置Redis哨兵集群所遇到的问题
    配置Redis哨兵集群时日志显示+sdownslave的问题一、配置及其环境描述(问题产生的原因是因为Redis复制中主节点对从节点的ip配置错误,从而导致哨兵无法识别从节点,进而无法进行故障转移)1.操作系统:Linux 虚拟机:VMwareWorkstation16Pro、WSLRedis主从复制配置为在VM虚拟机上......
  • zabbix6.4部署安装
    Zabbix6.4部署文档一、安装zabbix6.4配置要求:数据库:MySQL/Percona   8.0.X之一MariaDB 10.5.00-10.8.X前端:PHP 7.2.5或更高版本且不支持PHP8.0gd 2.0.28或更高版本PHPGD扩展必须支持PNG(--with-png-dir)、JPEG(--with-jpeg-dir)和FreeType2(--with......
  • 算法学习笔记
    来源排序算法冒泡排序遍历数组每次遍历到的元素和下一个元素比较,如果出现大于下一个,则交换一趟遍历就能使一个元素到它应当出现的地方图示:图片源自知乎代码:voidbubbleSort(intarr[],intn){for(inti=0;i<n-1;i++){//进行n-1轮排序,因为要和......
  • 笔记整理--C语言--C语言指针5分钟教程——转载
    C语言指针5分钟教程指针、引用和取值什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量。在这份教程里“引用”表示计算机内存地址。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可......
  • Microsoft Quantum Computing Fundamentals (MS QCF)​读书笔记
    1.学习目标准备开发环境,以便在Q#中编写量子程序。了解Q#程序的结构。使用量子比特和叠加来构建量子随机数生成器。了解Azure昆腾如何使你能够在量子硬件上运行程序。2.准备工作申请一个微软账号,会有500美金的免费额度用于创建工作区和量子使用费用。3.创建Azure量......
  • 【未完】Unity Revit与GLTF导出展示笔记
    Revit模型+材质Web网页加载显示......
  • RockyLinux 9安装部署zabbix-6.5
    ##zabbix6.0 server端已经不支持centos7了,故本文章以RockyLinux9演示OS:RockyLinuxrelease9.2(BlueOnyx)Database:MysqlWebServer :Nginx RockyLinux下载地址:https://rockylinux.org/download一、初始化系统脚本(可以跳过)#/bin/bash#------------->#适用于Ce......
  • 吴恩达机器学习2011版本学习笔记
    这是看完视频后,按自己的理解做了笔记。监督学习学的比较认真,33之后的无监督学习心态已经浮躁了,以后要再学一遍2022最新版视频课。1,有正确答案是有监督学习,反之是无监督学习2,模型就是把训练数据拟合为一个公式(严格来说是个函数,关系)。入门的拟合的方法是最小二乘法,先假设一个公式,......
  • 【学习笔记】简单数论-同余
    同余若整数\(a\)和整数\(b\)除以正整数\(m\)的余数相等,则称\(a,b\)模\(m\)同余,记为\(a\equivb\pmod{p}\)。性质自反性:\(a\equiva\pmod{p}\)对称性:若\(a\equivb\pmod{p}\),则\(b\equiva\pmod{p}\)。传递性:若\(a\equivb\pmod{p},b\equiv......