Redis

Redis

为什么使用redis??
在这里插入图片描述

1.1 NoSQL: not only sql

为什么有NOSql: 互联网项目:特点: 数据库高并发读写,海量数据高效率存储,可扩展
NOSQL主流:
键值对(redis),列式存储,文档类型,图形数据库
NoSql特点:
特点: 数据库高并发读写,海量数据高效率存储,可扩展

1.2 Redis简介

什么是实时系统: 瞬时可以实现某些数据的统计或者是功能的实现
*_Redis由来:
*_什么是redis?
由C语言实现的直接操作内存的开源的高性能的数据库软件
*_redis应用场景

1.3 安装redis

redis安装包: 源码形式提供 .c文件
将.c编译为.o文件 需要安装: gcc
将编译后的文件安装在linux系统上

等价于 希望在当前的系统安装JAVA版本的QQ,下载到的安装文件以.java源码形式提供.
需要:1_下载GCC 在系统上有JDK(GCC),
2_编译: 通过JDK将源码编译为字节码
3_安装: 将字节码进行打包设置 .bat

1_获取安装包 redis-3.0.7.tar.gz
2_利用filezilla.exe 将安装包上传到/root/
3_cd /root/ ___> tar -zxvf redis-3.0.7.tar.gz
4_编译 将源码翻译为.o文件
cd /root/redis-3.0.7 ___> make
5_创建一个目录 /usr/loca/src/redis (安装目录)
6_安装reids
cd /root/redis-3.0.7
make PREFIX=/usr/local/src/redis install

在这里插入图片描述
7_ 由于redis启动需要一个配置文件,将配置文件复制到 /root/redis/
cp /root/redis-3.0.7/redis.conf /root/redis

(用后端显示 不然不好操作)
8_ 修改/usr/local/src/redis/redis.conf
在这里插入图片描述
9_ 启动服务端 ./bin/redis-server ./redis.conf (后台启动)
10_启动客户端 ./bin/redis-cli
11_测试redis是否正确安装成功
向服务器发送 ping 命令,服务器返回 pong
向服务器发送 set name tom
get name 命令可以看到可以获取到tom的信息
向服务器发送keys *
可以查看服务器中一共有多少键值对的数据,可以查看到各个键值类型数据

想看其他的也可以访问 http://www.runoob.com/redis/redis-data-types.html

第1章 Redis操作5种数据类型

传统的关系型数据库支持的数据类型:字符串,数字,时间日期,其他
Redis支持的5种数据类型: 字符串,哈希,字符串列表,字符串集合,有序字符串集合
redis的数据结构
在这里插入图片描述

1.1Redis操作字符串

set name tom
get name
set name mary
get name
getset name smith
get name
del name
get name
incr num01
decr num01
incrby num01 33
decrby num01 33
append num01 abc

在这里插入图片描述

1.2 Redis操作哈希类型数据

hset myhash01 name tom
hset myhash01 age 18
hget myhash01 name
hget myhash01 age
hmset myhash02 name lucy age 18 m:multiple:多个的
hmget myhash02 name age
hgetall myhash02
hdel myhash02 name age
del myhash02
hincrby myhash02 age
hexists myhash02 username
hlen myhash02
hkeys myhash02
hvals myhash02

哈希 hash(里面还有一个键值对)
在这里插入图片描述

1.3 Redis操作列表类型数据

*_ArrayList和LinkedList特点回顾:
在这里插入图片描述
*_双线链表中添加数据
在这里插入图片描述

*_双线链表中移除数据
在这里插入图片描述
*_核心命令
PS:redis中的列表有头尾,约定:左头右尾
在这里插入图片描述
lpush mylist01 1 2 3
lpush mylist01 1 2 3
rpush mylist02 a b c d
rpush mylist02 1 2 3
lrange mylist01 0 -3 (左边以0开始往下 右边以-1开始往上)
lrange mylist01 0 -1
lpop mylist01
rpop mylist01
llen mylist01
lpushx mylist01 33
lpushx mylist03 ff
rpushx mylist01 44
rpushx mylist03 44
lpush mylist03 1 2 3 1 2 3 1 2 3
lrem mylist03 2 3
lrem mylist03 -2 1
lrem mylist03 0 2
lset mylist03 3 444
linsert mylist03 before b 11
linsert mylist03 after b 22
lpush mylist05 1 2 3
lpush mylist06 a b c
rpoplpush mylist05 mylist06
rpoplpush mylist06 mylist06
PS:rpoplpush的使用场景

1.4 Redis操作set类型数据

在这里插入图片描述
sadd myset01 a b c
sadd myset01 a
srem myset01 a b
smembers myset01
sismember myset01 a
sadd mya1 a b c
sadd myb1 a c 1 2
sdiff mya1 myb1
sadd mya2 a b c
sadd myb2 a c 1 2
sinter mya2 myb2
sadd mya3 a b c
sadd myb3 a c 1 2
sunion mya3 myb3
scard myset01
sranmember myset01
sdiffstore my1 mya1 myb1
sinterstore my1 mya2 myb2
sunionstore my1 mya3 myb3

1.5 Redis操作sortedset类型数据

在这里插入图片描述
zadd mysort01 70 zhangsan 80 lisi 90 wangwu
zadd mysort01 100 zhangsan
zadd mysort01 50 jack
zscore mysort01 zhangsan(得到张三的score)
zcard mysort01 (返回这个数据的大小 )
zrem mysort01 zhangsan lisi
zrange mysort01 0 -1
zrange mysort01 0 -1 withscores
zrevrange mysort01 0 -1 withscores
zremrangebyrank mysort01 0 4
zremrangebyscore mysort01 50 80
zrangebyscores mysort01 0 100 withscores
zrangebyscores mysort01 0 100 withscores limit 0 2

Redis干什么的?
llen mylist01
zcard mysort01

1.6 Keys的通用操作

在这里插入图片描述

keys *
keys my?
del myname
exists myname
rename myname name
expire myname 1000
ttl myname
type mystring string
type mylist list
type myset zset
type mysort sort
type myhash hash
type myzzz none

5种数据类型操作: 知道做了哪些事情?内存分布情况,命令依次敲一遍
Keys通用操作
Java操作Redis

第2章 Redis特性

2.1 多数据库支持

Redis支持多个数据仓库(16)
选中第0号仓库: select 0
选中第1号仓库: select 1
选中第15号仓库: select 15
将当前仓库下的某个键值对的数据移动到其他仓库:move name 1

2.2 服务器自学命令

测试连接是否存活: ping
打印内容: echo zhangsi (System.out.println(“DDDDD”)?
退出当前的redis连接:quit
测试当前仓库中有多少个键值对:dbsize
清除当前仓库:flushdb
清除所有的仓库:flushall execute .exe

2.3 消息订阅和发布

应用场景:类似于游戏中的在指定频道中发布消息
我们利用CRT打开3个窗口
窗口1中通过输入:subscribe mychat 订阅一个名称为mychat的频道
窗口2中通过输入:publish mychat ‘111’在频道mychat中发布消息111
窗口3中通过输入:psubscribe my* 批量订阅以my开头的频道
窗口2中通过输入:
publish mychat ‘333’ 在频道mychat和my频道中发布消息
Publish mychat02 ‘444’ 在频道my
中发布消息
关于消息订阅和发布,我们只需要看到上课演示的效果即可,具体更加详细的用法需要在
后续项目中来逐步实现.

2.4 事务的支持

1_redis中通过multi/exec/discard命令来解决开发中遇到的事务问题
2_Redis事务特点

3_对事务的掌握程度,我们只需要可以模仿上课的操作步骤,实现并且看到具体效果为准.

数据库要求:
1_通过JDBC,Jedis将数据存入仓库,从仓库中获取数据,删除/更新仓库的数据
2_sql语句编写(多表查询)
3_sql语句优化 select stuNum,stuName,stuAge,stuSex from stu;

重点:
操作5中数据类型
Keys通用操作
jedis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑瞳丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值