Web学习笔记4
Redis
- 概念:redis是一款高性能的NOSQL系列的非关系型数据库
- 下载安装
- 官网:http://redis.io
- 中文网:http://redis.net.cn
- 解压直接可以使用:
- redis.window.conf:配置文件
- redis-cli.exe:redis的客户端
- redis-server.exe:redis服务器端
- 命令操作
- redis的数据结构:
- redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构
- value的数据结构:
1)字符串类型 string
2)哈希类型 hash:map格式
3)列表类型 list:linkedlist格式。支持重复元素
4)集合类型 set:不允许重复元素
5)有序集合类型 sortedset:不允许重复元素,且元素有顺序
- 字符串类型 string
- 存储:set key value
- 获取:get key
- 删除:del key
- 哈希类型 hash
- 存储:hset key field value
- 获取:
- hget key field :获取指定的field对应的值
- hgetall key:获取所有的field和value
- 删除:hdel key field
- 列表类型 list:可以添加一个元素到列表的头部(左边)或者尾部(右边)
- 添加:
- lpush key value:将元素加入列表左边
- rpush key value:将元素加入列表右边
- 获取:
- lrange key start end:范围获取
- 删除:
- lpop key:删除列表最左边的元素,并将元素返回
- rpop key:删除列表最右边的元素,并将元素返回
- 添加:
- 集合类型 set:不允许重复元素
- 存储:sadd key value
- 获取:smembers key:获取set集合中所有元素
- 删除: srem key value:删除set集合中的某个元素
- 有序集合类型 sortedset:不允许重复元素,且元素有顺序
- 存储:zadd key score value
- 获取:zrange key start end
- 删除:zrem key value
- 通用命令
- keys * :查询所有的键
- type key :获取键对应的value的类型
- del key :删除指定的key value
- redis的数据结构:
- 持久化
- redis是一个内存数据库,当redis服务器重启,或者电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。
- redis持久化机制:
- RDB:默认方式,不需要进行配置,默认就使用这种机制
- 在一定的间隔时间中,检测key的变化情况,然后持久化数据
- 编辑redis.windows.conf文件
- 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
- after 900 sec (15 min) if at least 1 key changed
- 重新启动redis服务器,并指定配置文件名称
- 编辑redis.windows.conf文件
- 在一定的间隔时间中,检测key的变化情况,然后持久化数据
- AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据
- 编辑redis.windows.conf文件
appendonly no (关闭aof) --> appendonly yes (开启aof)
/# appendfsync always :每一次操作都进行持久化
appendfsync everysec :每隔一秒进行一次持久化
/# appendfsync no :不进行持久化
- 编辑redis.windows.conf文件
- RDB:默认方式,不需要进行配置,默认就使用这种机制
- Java客户端 jedis
- Jedis:一款java操作redis数据库的工具
- 使用步骤:
- 下载jedis的jar包
- 使用
- 获取连接
Jedis jedis = new Jedis(“localhost”,6379); - 操作
jedis.set(“username”,“zhangsan”); - 关闭连接
jedis.close();
- 获取连接
- Jedis操作各种redis中的数据结构
1)字符串类型 string
set
get
可以使用setex()方法存储可以指定过期时间的 key value
2)哈希类型 hash:map格式
hset
hget
3)列表类型 list:linkedlist格式。支持重复元素
lpush/rpush
lpop//rpop
lrange start end:范围获取
4)集合类型 set:不允许重复元素
sadd
smember:获取所有元素
5)有序集合类型 sortedset:不允许重复元素,且元素有顺序
zadd - jedis连接池:jedisPool
- 使用:
- 创建一个配置对象
JedisPoolCinfig config = new JedisPoolCinfig(); - 创建JedisPool对象
JedisPool jedisPool = new JedisPool(config,“localhost”,6379); - 获取连接
Jedis jedis = jedisPool.getResource(); - 使用
jedis.set(“username”,“zhangsan”); - 关闭 归还到连接池中
jedis.close();
- 创建一个配置对象
- 使用: