redis_java入门案例

本文详细介绍Redis的安装步骤及启动方法,深入讲解五种数据结构:字符串、哈希、列表、集合、有序集合的使用,并提供命令操作实例,包括CRUD操作、扩展命令和持久化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:安装包和文件已经上传到 资源中

2.3 安装和启动

* 下载
		Reids官网地址:http://redis.io
		中文网地址:https://www.redis.net.cn/
	
		GitHub地址:https://github.com/MSOpenTech/redis/tags		
* 安装
		解压缩即可
		
* 目录
		redis.windows.conf:配置文件
		redis-cli.exe:redis的客户端
		redis-server.exe:redis服务器端
		
* 启动
	推荐使用命令行的方式
		在当前解压后的目录下  cmd进入dos窗口
			先启动 redis-server.exe redis.windows.conf
			再启动 redis-cli.exe

2.4 数据结构(重点)

redis存储的是:key-value格式的数据,其中key是字符串类型,value支持五种数据类型

1. 字符串类型 string
2. 哈希类型 hash ---> HashMap
3. 列表类型 list ---> LinkedList
	特点:有序且可重复
4. 集合类型 set  ---> HashSet
	特点:无序且不能重复
5. 有序集合 sortedSet ---> LinkedHashSet
	特点:有序且不能重复

2.5 命令操作(数据crud)

ctrl+l 清屏

1. 字符串(string)
	1)添加
		set key value
	2)查询
		get key
	3)删除
		del key
		
		127.0.0.1:6379> set mystring zhangsan
        OK
        127.0.0.1:6379> set uname jerry
        OK
        127.0.0.1:6379> get uname
        "jerry"
        127.0.0.1:6379> set uname jack
        OK
        127.0.0.1:6379> get uname
        "jack"
        127.0.0.1:6379> del uname
        (integer) 1
        127.0.0.1:6379> del uname
        (integer) 0

2. 哈希(hash)
	1)添加
		hset key field value
	2)查询
		hget key field	:查找指定字段名的value
		hgetall key		:查找所有的键值对  键不能重复
	3)删除
		hdel key field
		
		127.0.0.1:6379> hset myhash name james
        (integer) 1
        127.0.0.1:6379> hset myhash age 34
        (integer) 1
        127.0.0.1:6379> hget myhash name
        "james"
        127.0.0.1:6379> hgetall myhash
        1) "name"
        2) "james"
        3) "age"
        4) "34"
        127.0.0.1:6379> hdel myhash age
        (integer) 1
        127.0.0.1:6379> hgetall myhash
        1) "name"
        2) "james"

3. 列表(list)你可以添加一个元素到列表的头部(左边)或者尾部(右边)
	1)添加
		lpush key value:添加一个元素到左边
		rpush key vlaue:添加一个元素到右边
	2)查询
		lrange key start end
			查询所有:lrange key 0 -1
	3)删除    //-->类似于弹栈和压栈
		lpop:将元素从左边弹出
		rpop:将元素从右边弹出
		
		127.0.0.1:6379> lpush mylist a
        (integer) 1
        127.0.0.1:6379> lpush mylist b
        (integer) 2
        127.0.0.1:6379> rpush mylist c
        (integer) 3
        127.0.0.1:6379> lrange mylist 0 -1
        1) "b"
        2) "a"
        3) "c"
        127.0.0.1:6379> rpush mylist a
        (integer) 4
        127.0.0.1:6379> lrange mylist 0 -1
        1) "b"
        2) "a"
        3) "c"
        4) "a"
        127.0.0.1:6379> lpop mylist
        "b"
        127.0.0.1:6379> rpop mylist
        "a"
        127.0.0.1:6379> lrange mylist 0 -1
        1) "a"
        2) "c"

4. 集合(set)
	1)添加
		sadd key value1 value2 ...
	2)查询
		smembers key 
	3)删除
		srem key value
		
		127.0.0.1:6379> sadd myset a
        (integer) 1
        127.0.0.1:6379> sadd myset z w
        (integer) 2
        127.0.0.1:6379> smembers myset
        1) "z"
        2) "a"
        3) "w"
        127.0.0.1:6379> sadd myset a
        (integer) 0
        127.0.0.1:6379> srem myset a
        (integer) 1
        127.0.0.1:6379> smembers myset
        1) "z"
        2) "w"

5. 有序集合(soreted set)
	1)添加
		zadd key score value
	2)查询
		zrange key start end [withscores] 升序查询
		zrevrange key start end [withscores] 降序查询
	3)删除
		zrem key value
		
		127.0.0.1:6379> zrevrange mysort 0 -1
        1) "yasuo"
        2) "gailun"
        3) "pangxie"
        127.0.0.1:6379> zrevrange mysort 0 -1 withscores
        1) "yasuo"
        2) "100"
        3) "gailun"
        4) "70"
        5) "pangxie"
        6) "10"
        127.0.0.1:6379> zrange mysort 0 -1 withscores
        1) "pangxie"
        2) "10"
        3) "gailun"
        4) "70"
        5) "yasuo"
        6) "100"
        127.0.0.1:6379> zrem mysort yasuo
        (integer) 1
        127.0.0.1:6379> zrange mysort 0 -1 withscores
        1) "pangxie"
        2) "10"
        3) "gailun"
        4) "70"
        
6. 扩展命令
	1)查询当前库下所有的key
		keys *
	2)判断key 的数据类型
		type key
	3)删除指定key的数据
		del key
		
	redis默认有16个数据库
		0-15
		切换库的命令 select 编号
		
		flushall 清除所有库的记录

2.6 持久化

Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。Redis支持两种方式的持久化(RDB和AOF),可以同时使用。

参数需要在redis.window.conf中进行配置

* RDB(默认方式,不要配置) 可能会出现数据的丢失,但是相对于aof效率能跟高一些
	该机制指定间隔的时间内将内存的数据以快照的方式,持久化到磁盘
	#   after 900 sec (15 min) if at least 1 key changed
		save 900 1
	#   after 300 sec (5 min) if at least 10 keys changed	
        save 300 10
    #   after 60 sec if at least 10000 keys changed
        save 60 10000

* AOF(默认关闭,需要手动配置)
		appendonly no(关闭) -->  appendonly yes(开启)
	该机制以日志记录的方式监听服务器数据的写(set)操作,持久化磁盘
		# appendfsync always   每执行一次set,持久化一次
		  appendfsync everysec 每秒钟,持久化一次
		# appendfsync no	   不持久化
		
* 小结
	RDB
		优点:查询效率高,服务器压力低
		缺点:可能会丢失一部分数据
		应用场景:作为数据库的缓存
	AOF
		优点:保证数据的安全性
		缺点:查询效率低,服务器压力高
		应用场景:作为单独的数据库服务器使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值