Redis学习记录

目录

一、Redis概述

1.1 Redis介绍

1.2 Redis应用场景

1.3 Redis的特性

二、Redis安装

2.1 下载Redis

2.2 Redis安装环境

2.3 Redis安装

2.4 Redis启动

2.4.1 前端启动

2.4.2 后端启动

三、Redis客户端

3.1 Redis自带的客户端

3.3 Redis命令行操作

3.4 Java客户端连接


一、Redis概述

1.1 Redis介绍

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:

  • 字符串类型
  • 散列类型(map)
  • 列表类型
  • 集合类型
  • 有序集合类型

1.2 Redis应用场景

  • 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用
  • 分布式集群架构中的session分离。
  • 聊天室的在线好友列表。
  • 任务队列。(秒杀、抢购、12306等等)
  • 应用排行榜。
  • 网站访问统计。
  • 数据过期处理(可以精确到毫秒)

1.3 Redis的特性

  • redis数据访问速度快(数据在内存中)
  • redis有数据持久化机制(持久化机制有两种:1、定期将内存数据dump到磁盘;2、aof(append only file)持久化机制——用记日志的方式记录每一条数据更新操作,一旦出现灾难事件,可以通过日志重放来恢复整个数据库)
  • redis支持集群模式(容量可以线性扩展)
  • redis相比其他缓存工具(ehcache/memcached),有一个鲜明的优势:支持丰富的数据结构

二、Redis安装

2.1 下载Redis

下载地址:Download | Redis

源码包下载地址:Redis · GitHub

官方地址:Redis

2.2 Redis安装环境

Redis安装一般会在Linux系统下进行安装,又因为redis是使用c语言开发,所以需要c语言环境。

  • Linux:CentOS-7.7
  • VMware:15.5
  • C语言环境

2.3 Redis安装

第一步:在VMware中安装CentOS系统(Linux)。
第二步:在Linux系统中安装c语言环境

 # 测试服务器是否有网
 [root@user1 ~]# ping www.baidu.com
 # 安装C语言环境
 [root@user1 ~]# yum -y install gcc-c++ 

第三步:将redis的源码包通过MobaXterm_CHS上传至/root/softwares 下通过命令将压缩包接到usr/local

tar -zxvf /root/softwares/redis-4.0.14.tar.gz -C /usr/local

第四步:编译源码包

# 进入目录
[root@user1 ~]# cd /usr/local/redis-4.0.14/

#编译源码包

[root@user1 redis-4.0.14]# make
......
Hint: It's a good idea to run 'make test' ;)

make[1]: Leaving directory `/usr/local/redis-4.0.14/src'

2.4 Redis启动

2.4.1 前端启动

注意:前端启动后,如果客户端关掉或者执行ctrl+c命令。则整个redis服务也会停掉。

前端启动redis-server命令

/usr/local/redis-4.0.14/src/redis-server redis.conf

启动后 

2.4.2 后端启动

修改redis.conf文件,可以通过命令行通过 /关键词 回车查找关键词,比如

#修改redis的配置
vim /usr/local/redis-4.0.14/redis.conf
#修改如下
#修改redis服务的ip
bind 192.168.10.101 127.0.0.1
#修改redis的认证密码
requirepass root
#修改redis的日志存储文件
logfile "/usr/local/redis-4.0.14/redis.log"
#指定redis以守护进程启动(这个改成yes后,在启动就是以后端启动了)
daemonize yes

配置文件修改完成后,就可以启动redis服务端了

/usr/local/redis-4.0.14/src/redis-server /usr/local/redis-4.0.14/redis.conf

查看是否启动

#判断redis是否启动
[root@user1 redis-4.0.14]# ps -ef | grep redis

三、Redis客户端

3.1 Redis自带的客户端

进入客户端命令

/usr/local/redis-4.0.14/src/redis-cli -h 192.168.10.101 -p 6379 -a root -n 1

-h : redis的服务ip
-p : redis的端口
-a : redis的密码
-n : 指定进入redis的数据库

#进入redis的客户端
[root@user1 redis-4.0.14]# /usr/local/redis-4.0.14/src/redis-cli -h 192.168.10.101 -p 6379

#配置了密码的话需要先输密码
192.168.10.101:6379> auth root   #输入redis的密码
OK


192.168.10.101:6379> ping     #使用ping命令测试redis
PONG


192.168.10.101:6379> set name zs   #设置key为name value为zs的一个键值对
OK


192.168.10.101:6379> get name     #获取key为name的value值
"zs"


192.168.10.101:6379> select 1    #选择redis中的数据库1,默认在0库
OK


192.168.10.101:6379[1]> get name   #在数据库1下获取key为name的value
(nil)

切换数据库

#通过select命令切换数据库,默认在0库

192.168.10.101:6379> select 1

192.168.10.101:6379[1]> 

3.2 Windows安装redis桌面客户端

下载链接:Release 0.8.8 · uglide/RedisDesktopManager · GitHub

安装:下载完成后双击redis-desktop-manager-0.8.8.384.exe,选择安装路径即可

连接Redis服务器 

连接成功后在db(0)数据库中可以看到我们之前添加的name zs键值对

3.3 Redis命令行操作

3.3.1 字符串类型操作命令

#set key value 命令添加键值对
129.0.0.1Redis.assets6379> set str1 angelababy
OK

#get key命令获取key对应的value
129.0.0.1Redis.assets6379> get str1
" angelababy"

#del key 删除对应的键值对
129.0.0.1Redis.assets6379> del str1
 

自增 incr key
value必须为数字类型

129.0.0.1Redis.assets6379> set s1 1
OK
129.0.0.1Redis.assets6379> incr s1
(integer) 2
129.0.0.1Redis.assets6379> incr s1
(integer) 3

自减 decr key
129.0.0.1Redis.assets6379> decr s1
(integer) 2
129.0.0.1Redis.assets6379> decr s1
(integer) 1
 

自增自减指定数值
129.0.0.1Redis.assets6379> incrby s1 3
(integer) 4
129.0.0.1Redis.assets6379> decrby s1 3
(integer) 1

设置或者获取多个key/value
129.0.0.1Redis.assets6379> mset s1 v1 s2 v2 
OK
129.0.0.1Redis.assets6379> mget s1 s2
1) "v1"
2) "v2"

3.3.2 Hash命令

hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。如下:

 无论是是下面哪个命令,

  • hset

在redis中,命令是不区分大小写,但是key区分大小写

192.168.10.101:6379> hset stu_1 name zhangsan
(integer) 1
192.168.10.101:6379> hset stu_1 age 18
(integer) 1
192.168.10.101:6379> hset stu_1 sex 1
(integer) 1

  • hget

192.168.10.101:6379> hget stu_1
(error) ERR wrong number of arguments for 'hget' command
192.168.10.101:6379> hget stu_1 name
"zhangsan"

  • hdel

192.168.10.101:6379> hdel stu_1
(error) ERR wrong number of arguments for 'hdel' command
192.168.10.101:6379> hdel stu_1 sex
(integer) 1

hget和hdel命令 键和字段(field)都必须给定,不能只给键,否则会报错 

  • 批量操作

192.168.10.101:6379> hmset key field1 value1 field2 value2
OK
192.168.10.101:6379> hmget key field1 field2
1) "value1"
2) "value2"
192.168.10.101:6379> hmget key field1 field2 field3
1) "value1"
2) "value2"
3) (nil)

  • 增加value数值

192.168.10.101:6379> hincrby stu_1 age 2
(integer) 20

  • 判断字段是否存在
    HEXISTS key field

192.168.10.101:6379> hexists stu_1 age
(integer) 1
192.168.10.101:6379> hexists stu_1 sex
(integer) 0

3.3.3 List命令 

#从列表最左边插入

192.168.10.101:6379> LPUSH l1 zs ls wa gd ma ch cunhua
(integer) 7

#从列表最左边开始枚举
192.168.10.101:6379> LRANGE l1 0 -1
1) "cunhua"
2) "ch"
3) "ma"
4) "gd"
5) "wa"
6) "ls"
7) "zs"

#从列表最左边开始弹出
192.168.10.101:6379> LPOP l1
"cunhua"
192.168.10.101:6379> LRANGE l1 0 -1
1) "ch"
2) "ma"
3) "gd"
4) "wa"
5) "ls"
6) "zs"
192.168.10.101:6379> RPOP l1
"zs"
192.168.10.101:6379> LRANGE l1 0 -1
1) "ch"
2) "ma"
3) "gd"
4) "wa"
5) "ls"

其它列表List、集合Set和有序集合ZSet类型的命令我们不再赘述,大家有时间再学习。 

3.4 Java客户端连接

3.4.1 JedisAPI连接

Jedis就是Redis的客户端连接对象,也就是创建的实例连接的Connection对象,类似于MySQL的JDBC-Driver驱动。

3.4.2 单机连接

创建Maven工程,导入Pom依赖

<!--Redis依赖-->
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.0.0</version>
</dependency>

 代码测试

package com.redis

import redis.clients.jedis.Jedis

/**
 * redis的测试
 */
object RedisTest {
  def main(args: Array[String]): Unit = {
    //获取jedis的对象
    val jedis = new Jedis("user1", 6379)
    //设置redis的密码
    jedis.auth("root")
    //测试redis
    val res = jedis.ping()
    println(res)
    //选择redis的库
    jedis.select(2)
    //测试字符串
    jedis.set("scala","scala-jedis")
    println(jedis.get("scala"))
    //测试列表
    jedis.lpush("l1","1","3","2","hello")
    println(jedis.lrange("l1",0,-1))
    //关闭jedis对象
    jedis.close()
  }
}

测试运行结果

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
尚硅谷是一个教育机构,他们提供了一份关于Redis学习笔记。根据提供的引用内容,我们可以了解到他们提到了一些关于Redis配置和使用的内容。 首先,在引用中提到了通过执行命令"vi /redis-6.2.6/redis.conf"来编辑Redis配置文件。这个命令可以让你进入只读模式来查询"daemonize"配置项的位置。 在引用中提到了Redis会根据键值计算出应该送往的插槽,并且如果不是该客户端对应服务器的插槽,Redis会报错并告知应该前往的Redis实例的地址和端口。 在引用中提到了通过修改Redis的配置文件来指定Redis的日志文件位置。可以使用命令"sudo vim /etc/redis.conf"来编辑Redis的配置文件,并且在文件中指定日志文件的位置。 通过这些引用内容,我们可以得出结论,尚硅谷的Redis学习笔记涵盖了关于Redis的配置和使用的内容,并提供了一些相关的命令和操作示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis学习笔记--尚硅谷](https://blog.csdn.net/HHCS231/article/details/123637379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Redis学习笔记——尚硅谷](https://blog.csdn.net/qq_48092631/article/details/129662119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值