redis 数据库

Redis介绍
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
1) 字符串类型 string
2) 哈希类型 hash
3) 列表类型 list
4) 集合类型 set
5) 有序集合类型 sortedset
1.3.1 redis的应用场景
• 缓存(数据查询、短连接、新闻内容、商品内容等等)
• 聊天室的在线好友列表
• 任务队列。(秒杀、抢购、12306等等)
• 应用排行榜
• 网站访问统计
• 数据过期处理(可以精确到毫秒
• 分布式集群架构中的session分离

下载安装
1. 官网:https://redis.io
2. 中文网:http://www.redis.net.cn/
3. 解压直接可以使用:
* redis.windows.conf:配置文件
* redis-cli.exe:redis的客户端
* redis-server.exe:redis服务器端
数据类型
所有的数据都是key-value形式,所谓的数据类型指的是value的类型,key的类型全部都是字符串。
*

命令操作*

  • 操作String

     新增:set username jack
     查看:get username
     删除:del username
     修改:set username lucy
     其他:
     	  incr age		把age的值递增1
     	  incryby age 10	递增10
     	  decr age		递减1
     	  decrby	age	10	递减10
     	  append key  value		不存在就新建,存在就追加
    
  • 操作hash

     新增:
     	hset user1 name jack
     	hmset user2 name lucy age 18
     查看:
     	hget user1 name
     删除:
     	hdel user1 name
     修改:
     	hset user1 username lucy    --修改username的值为lucy
     其他:
     	hmget user1 name age		获取user1中的name和age的值
     	hgetall	user1			获取user1中的所有key以及vlaue的值
     	hincrby user1 age 10			为user1里面的age属性的值递增10(递减-10)
     	hexists user2 addr				判断user2中是否包含adr属性
     	hlen user1 						获取user1包含多少个属性
     	hkeys user1						获取user1中的所有属性
     	hvals user1 					获取user1中的所有属性的值
    
  • 操作List

     新增:
     	lpush names jack lucy mary  -- names不存在就新建,存在就新增值,左边新增
     	rpush names jack 			--从右边新增
     查看:
     	lrange names 0 -1			--查所有,不想查所有修改-1
     删除:
     	lrem names 2 jack			从左开始,删除2个jack(右往左就写负数)
     修改:
     	lset names 2	jackson		--把下标为2的值换成jackson
     其他:
     	lpushx	names    jack	如果存在names就加入到左边,否则不作处理
     	rpushx	names	 jack    xxxxx
     	lpop names 						从左边开始弹出数据
     	rpop names 						从右边开始弹出数据
     	llen names 						查看names中有多少个数据
     	linsert names before a aaa		在names中的a的前面插入aaa(如果有重复的,以左边第一个为准)
     	linsert names after b bbb 		在names中的b的后面插入bbb(如果有重复的,以左边第一个为准)
     	rpoplpush names names2			把names中的最右边的数据弹到names2的最左边去
    
  • 操作set

     增加:
     	sadd    addrs    Nanjing   Beijing  dongjing  
     查看:
     	smembers   addrs
     删除:
     	srem addrs nanjing			--删除addrs中的nanjing
     修改:
     	
     移动:
     	smove addrs new_addrs Nanjing		--把addrs中的nanjing移动到new_addrs
     其他:
     	sismembers fr1 a 				判断fr1中是否存在a
     	sdiff fr1 fr2 					获取fr1的个人独有的数据(个人好友)
     	sinter fr1 fr2 fr3				求交集(共同好友)
     	sunion fr1 fr2 					求并集
     	srandmember fr1 				随机从fr1中读取一个值
     	sdiffstore fr4 fr1 fr2 			把fr1-fr2的结果存储到fr4中
     	sinterstore fr5 fr1 fr2 		把fr1和fr2的交集存储到fr5中
     	sunionstore fr6 fr1 fr2 		把fr1和fr2的并集存储到fr6中
    
  • 操作SortedSet

    增加:
    zadd score 90 jack 80 mary 100 rose --指定jack分数90,mary分数80,rose100

    查看:
    zrange score 0 -1 withscores
    删除:
    zrem score kangkang mary
    修改:
    zincrby score 3 kangkang 增加分数
    其他:
    zcard games 获取gamgs中的成员数量
    zrem games1 a b 删除games1中的a,b元素
    zrange games 0 3 withscores 查询games中0到3的所有成员以及其对应的分数
    zrange games 0 -1 withscores 查询games中所有成员以及其对应的分数(从小到大)
    zrevrange games 0 -1 withscores 查询games中所有成员以及其对应的分数(从大到小)
    zremrangebyrank games1 0 1 删除下标从0到1之间的数据
    zremrangebyscore games1 45 55 删除games1中分数在45到55之间的元素
    zrangebyscore games 55 85 withscores limit 0 3 (分页)
    查询分数在55到85之间,按照从小到大排序,取出从第0个开始的一共3个结果

     zincrby games1 20 dd			给games1中的dd增加20分(减分改成-20)
     zcount games1 20 80 			获取games1中20分到80分之间的成员的总的数量
     zrank games1 bb 				获取bb在games1中的排名(从小到大)
     zrevrank games1 bb 				获取bb在games1中的排名(从大到小)
    

通用命令


keys * 查看当前库有哪些键
select 1 选择1号库
type key 获取key的具体类型
exists keys 判断指定key是否存在于数据库中
rename k k1 把k重命名成k1
expire key 1000 设置key的过期时间(单位是秒)
move key 6 把当前库中的key移动到6号库中
dbsize 返回当前数据库中key的数目
info 获取服务器的信息和统计
flushdb 清除当前数据库中的数据
flushall 删除所有数据库中的所有的key

持久化
rdb:
快照备份(默认使用的备份方案)

save 900 1
save 300 10
save 60 10000
指定配置文件启动
redis-server.exe redis.windows.conf

**aof:**
	日志记录

打开aof备份
appendonly yes
设置备份策略
appendfsync always
appendfsync everysec
appendfsync no

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
### Redis 数据库使用指南 Redis 是一个开源的内存键值存储数据库,具有高性能、丰富的数据结构支持以及分布式能力。它被广泛用于缓存系统、消息队列和高并发应用中。以下是 Redis 的基本概念、连接方法及 Java 操作示例。 #### 1. Redis 简介 Redis 是一种 NoSQL 数据库,支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。其设计目标是提供极高的读写性能,并支持持久化功能以防止数据丢失[^1]。 #### 2. 连接到 Redis 数据库 要使用 Redis 数据库,首先需要确保已正确安装并启动 Redis 服务。可以通过以下方式连接到 Redis: - **本地连接**:如果 Redis 在本地运行,默认端口为 6379,可以通过命令行工具 `redis-cli` 进行连接。 - **远程连接**:对于远程实例,需要指定主机地址和端口号,例如 `redis-cli -h <hostname> -p <port>`。 连接成功后,可以使用 Redis 提供的命令进行数据操作。例如,设置和获取键值对: ```bash SET mykey "Hello, Redis!" GET mykey ``` 此外,还可以通过编程语言提供的客户端库与 Redis 进行交互[^2]。 #### 3. 在 Java 中操作 Redis 在 Java 中操作 Redis 数据库通常需要借助 Redis 客户端库,如 Jedis 或 Spring Data Redis。以下是一个基于 Spring Data Redis 的配置示例: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfiguration { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 设置 Key 和 Value 的序列化器 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new StringRedisSerializer()); return redisTemplate; } } ``` 通过上述配置,可以在 Java 应用程序中轻松地与 Redis 数据库交互[^3]。 #### 4. Redis 的持久化机制 Redis 支持两种主要的持久化方式: - **RDB(Redis Database Backup)**:定期将内存中的数据快照保存到磁盘上。 - **AOF(Append-Only File)**:记录每次写操作的日志,以便在重启时恢复数据。 开发者可以根据实际需求选择合适的持久化策略。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值