redis的使用(上)
1、redis的认识?
redis(Remote Dictionary Server远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库(非关系型数据库),并提供了多种语言的API。
非关系型数据库的特点:
1):数据结构比较简单(通过文档存储数据《mongodb》、通过key-value方式存储数据《redis/memcache》)
2):存储在内存中
3):弱化了事务
4):支持集群环境
5):支持脚本语言
2、redis的安装
redis的运行需要有c语言环境==》需要安装gcc
步骤:
A:纯净版系统快照克隆一台机器
B:开机、登录、分配IP地址、客户端建立连接、确认网络
C:拍摄一个开机快照
D:通过yum方式安装gcc
yum install -y gcc
E:把redis的安装文件(tar.gz文件)拖入到/tmp目录下
F:通过命令解压redis
tar -zxvf redis文件名
G:进入到redis的根目录,进行编译操作
make命令
H:做统一部署(方便管理)
I:启动redis
cd /etc/local/redis/bin
./redis-server
3、redis的基本操作
A:启动redis 加载redis的配置文件,启动redis
bin目录下 ./redis-server ../etc/redis.conf
B:启动redis的客户端工具
执行/etc/local/redis/bin/redis-cli启动redis客户端工具
1):xshell复制一个新选项卡
2):在新的选项卡中,执行客户端工具文件启动客户端工具
./redis-cli
3):在redis的客户端中对redis数据库进行操作
C:关闭redis
1):在启动redis的界面,通过CTRL+C就可以把redis关闭掉
2):通过执行redis-cli文件关闭redis
D:redis操作的命令
1):set ==》set key value:往redis数据库中存放数据
2):get==》get key:根据key获取到对应的value;
3):keys *:显示数据库中所有的key
4):flushdb==》清空数据库
redis默认安装了16个数据库,编号0到15;默认使用0号数据库
flushdb清空当前使用的这个数据库
5):flushall==》清空所有数据库
6):select dbindex==》选中几号数据库
7):del key==》删除数据
8):clear==》清屏
9):exit/quit==》退出redis的客户端
E:命令的使用
help 命令名==》获取这个命令的帮助信息;
redis中的命令是通过组管理的;redis中的每一个命令都会有一个所属的组
help@组名==》获取到该组下的所有命令的帮助信息
F:redis中的命令组
generic/connection/server
string/list/set/sorted set/hash
4、redis的数据结构
是根据value的数据类型划分的
A:string类型==》值是字符串
B:list类型==》值是多个可以重复的有序的数据
C:set类型==》值是多个不可重复的无序的数据
D:sorted set==》值是多个不可重复的有序的数据;元素的分数一般是有业务含义的;通过zrange key startIndex endIndex获取排序好的数据
E:hash类型》值是多个键-值对;就像Java对象以及属性-值;在hash类型中,有大key以及小key;
redis专业的属于key field vlaue;
不同的数据结构,使用不同的命令完成操作
比如,要往redis中存放一个数据
String:set a b
List :push i add
Set :sadd s cc;
Sorted set:zadd z 3 ee
Hash:hset u n zz
help@组名找到该组下对应的命令完成操作
5、Java操作redis
5.1Jedis的使用
jidis:是redis提供的,用Java语言操作redis的一个技术
步骤:
1):添加redis依赖
2):创建一个jedis对象(就相当于jdbc的connection;mybatis中的sqlsession)
3):调用jedis对象中的方法,就可以完成对redistribution的操作
通过连接池管理jedis
6、序列化和反序列化
在jedis的使用中,如果希望把Java对象存储到redis中,就应该把Java对象转换成字节数组/json串
把Java对象转换为字节数组==》序列化
把字节数组转换为Java对象==》反序列化
可以通过commons-lang3提供的工具完成
把Java对象转换为json串==》序列化
把json串转换为Java对象==》反序列化
可以通过json解析工具完成