数据库认识

数据库认识

1、关系型数据:MySQL(开源免费):表与表之间,字段与字段有一定关联性,是密不可分的

2、非关系型数据库:redit、mongoDB,与关系型不同,没有严格的关联性

速度对比:非关系型数据的速度较快,基于内存

字段限制:关系型数据必须要有值

存储稳定性:关系型数据库比较稳定,一般不会丢失数据。

比较:关系型数据库中的字段与字段之间是有一定关系的,所以有些可以不用有value的字段,使用关系型数据库,这个字段要占一定的空间,而非关系型数据库不一样

非关系型数据的作用

1、分析特点:速度快(基于内存),没有字段要求,可能出现数据的丢失(重启)

2、非关系数据库的用处:将不经常使用的数据存储起来,用户在查看的时候直接访问数据库读取数据,当作缓存数据库使用。

效率非常快,是C语言开发的

Redis

1.是非关系型数据库

2.key-value型数据库

3.支持五种数据格式 : String、List、Set、ZSet、Hash

4.基于C语言开发

5.基于内存也可以持久化的数据库

Redit下载、安装

连接好finashell,使用wget命令来下载redis压缩包,

mv 包名 想要放到的目录

tar -zxvf 包名  解压
#编译安装
make
# 启动服务
./src/redis-server
异常处理
cc: 未找到命令
yum install gcc -y
    
jemalloc/jemalloc.h 没有那个文件或目录
make MALLOC=libc

Redis 默认端口号

6379

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJXiFHcn-1591208169842)(C:\Users\Asus\AppData\Roaming\Typora\typora-user-images\image-20200602101828909.png)]

Redis String操作命令

[root@localhost ~]# cd /usr/local/redis/src/
#开启服务后,新开一个窗口,远程连接
[root@localhost src]# ./redis-cli 


#存值
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
#修改值
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> get name
"lisi"
#删除
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> 

Redis hash操作命令

#hset 存值
127.0.0.1:6379> hset user id 1 name jing age 18 address guizhou
(integer) 4
#获取对象中的某一个字段
127.0.0.1:6379> hget user id
"1"
# HGETALL 获取Hash字段中所有的数据
127.0.0.1:6379> HGETALL user
1) "id"
2) "1"
3) "name"
4) "jing"
5) "age"
6) "18"
7) "address"
8) "guizhou"
# 获取字段所有的值
127.0.0.1:6379> HVALS user
1) "1"
2) "jing"
3) "18"
4) "guizhou"
#获取所有的字段
127.0.0.1:6379> HKEYS user
1) "id"
2) "name"
3) "age"
4) "address"
#添加字段
127.0.0.1:6379> hset user love langqiu
(integer) 1
127.0.0.1:6379> HGETALL user
 1) "id"
 2) "1"
 3) "name"
 4) "jing"
 5) "age"
 6) "18"
 7) "address"
 8) "guizhou"
 9) "love"
10) "langqiu"
127.0.0.1:6379> hset user love zuqiu
(integer) 0
127.0.0.1:6379> HGETALL user
 1) "id"
 2) "1"
 3) "name"
 4) "jing"
 5) "age"
 6) "18"
 7) "address"
 8) "guizhou"
 9) "love"
10) "zuqiu"
# 根据key删除数据
127.0.0.1:6379> del user
(integer) 1
127.0.0.1:6379> HKEYS user
(empty list or set)

根据KEY查询数据

#查看Redis数据库中所有的KEY
keys *

List类型(栈结构–先进后出)

# 添加数据
127.0.0.1:6379> LPUSH userList zhangsna lisi jingjing wangwu 
(integer) 4
127.0.0.1:6379> LRANGE userList 0 1
1) "wangwu"
2) "jingjing"
127.0.0.1:6379> LPUSH userList lisi
(integer) 5
# 当中的值是可以重复的
127.0.0.1:6379> LRANGE userList 0 3
1) "lisi"
2) "wangwu"
3) "jingjing"
4) "lisi"
# 查询所有数据
127.0.0.1:6379> LRANGE userList 0 -1
1) "lisi"
2) "wangwu"
3) "jingjing"
4) "lisi"
5) "zhangsna"

SET 类型

#添加数据(自动完成去重)
127.0.0.1:6379> SADD userSet zhangsan lisi wanwu jingjing jingjing zhangsan
(integer) 4
127.0.0.1:6379> SRANDMEMBER userSet
"jingjing"
# 查询指定条数
127.0.0.1:6379> SRANDMEMBER userSet 4
1) "zhangsan"
2) "wanwu"
3) "jingjing"
4) "lisi"
# 遍历
127.0.0.1:6379> SMEMBERS userSet
1) "zhangsan"
2) "jingjing"
3) "lisi"
4) "wanwu"

ZSet类型

定义了一种排序规则:分数score

#添加数据
 127.0.0.1:6379> ZADD menuList 1 lisi 0.5 jigjing 1.25 jingjing 2.25 liang
(integer) 4
#遍历数据
127.0.0.1:6379> ZRANGE menuList 0 -1
1) "jigjing"
2) "lisi"
3) "jingjing"
4) "liang"

Java使用数据库

RedisConfig配置 (src下)

vim redis.config

1.任何IP地址都可以访问

bind 0.0.0.0

2.加入密码(36%)

requirepass 123456

#结束进程后,加载配置文件
[root@localhost src]# ./redis-server ../redis.conf 

查看Linux进程

#查看进程
[root@localhost redis]# ps -ef | grep redis
root      17580  65779  0 04:14 pts/3    00:00:00 grep --color=auto redis
root      63434      1  0 6月01 ?       00:00:23 ./redis-server *:6379
# 结束进程
[root@localhost redis]# kill -9 63434
[root@localhost redis]# ps -ef | grep redis
root      19347  65779  0 04:16 pts/3    00:00:00 grep --color=auto redis

Java连接Redis

 public static void main( String[] args )
    {
        //连接
        Jedis jedis = new Jedis("192.168.128.129");
        //验证
        jedis.auth("123456");
        //验证是否连接上
//        String name = jedis.get("name");
//        System.out.println(name);
        List<String> userList = jedis.lrange("userList", 0, -1);
        System.out.println(userList);
        jedis.hset("user","id","2");
        String hget = jedis.hget("user", "id");
        System.out.println(hget);
        //连接是否成功
//        jedis.ping();
     //关闭资源
        jedis.close();

    }

g> userList = jedis.lrange(“userList”, 0, -1);
System.out.println(userList);
jedis.hset(“user”,“id”,“2”);
String hget = jedis.hget(“user”, “id”);
System.out.println(hget);
//连接是否成功
// jedis.ping();
//关闭资源
jedis.close();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值