CentOS 6系统 + Redis3.2.11 + Java
安装:
首先利用使用wget获取资源
接着使用tar -xf 包名称
然后进入redis根目录
使用编译 编译安装
make && make install
成功之后就可以使用了
redis-server:启动默认的redis服务 默认加载的配置文件是redis.conf
如果想启动自定义的配置则需要修改一下配置文件并在命令后加上配置文件的绝对/相对路径(以能找到为主)
如:在redis目录下运行 redis-server redis_6379.conf 则会按照此配置文件进行配置。
redis-cli:按照默认IP以及端口进行连接redis服务。
如果想自定义指定ip或者端口可以使用-h IP地址 -p 端口号
ps -ef|grep redis:可以检查后台运行的redis服务。
redis可以在内存中存储五种数据类型,最底层的内容还是String;针对value而言
String字符串类型
hash面向对象的存储方式
list 链表
set 集合
zset有序集合
String类型和基础命令
keys *:查看当前redis中存在的所有key-value数据
Set key value:存放一个string类型的value数据,利用key值来保存(key值获取是需要根据业务逻辑来完成的)
get key:获取string类型的数据
select 整数(默认0-15):默认redis将会进行分库操作,每个库和其他的库数据不连通;当前总是默认使用0号库。
exists key:判断key值是否存在;
redis的value存储最大值3.2.11版本中512M;
del key:删除key对应的value数据对
type key:五种数据结构,利用type可以查看数据类型
help 命令名称:查看当前命令的使用(不推荐),一般查看命令的使用都到官网;
save+dump文件
redis可持久化的类型:rdb模式
调用save命令,可以将当前redis的数据写出到默认redis根目录的dump文件
save命令一旦调用,当前内存数据就会输出到持久化文件中(可以指定dump)
flushall:将内存和持久化文件的所有数据清空
flushdb:清空当前库的内存数据
incr decr key:自增自减,key对应的value是String,但是必须是数字;单步计步器
设定计步的步数
incrby decrby key 数字:对key的增加和减少设定步数
append key value:修改数据可以使用set命令覆盖,有的时候数据只需要追加,可以使用append
expire key seconde:超时时间,设定当前key的超时时间;一般来讲数据都需要设定超时时间;
redis有自动删除数据的逻辑 最近最久未使用
LUR;对于已经满足最近最久未使用的数据,即使不设定超时时间也删除;
ttl key:查看key的超时时间
每个数据有记录超时的数字
大于零:剩余时间
永久数据:记录时间 -1
超时数据:记录时间 -2
Hash数据类型
Hset key field value 设置一个hash结构的一条数据
Hget key field 获取一个hash结构数据的某个属性值
hexists 判断hash结构的key是否存在
只想获取属性值,只想获取属性值
Hvals hkeys key
hash结构的计步器
hincrby
hlen key:获取hash数据结构的所有属性个数
集合数据类型(list set zset)
在list,左为上,右为下,从上倒下相当于从左到右
lpush key value:从左侧将value数据添加到一个叫key的list当中
lrange key 起始位置 结束位置:如果想展示链表所有内容 从0到-1
rpush key value:从右侧插入链表数据,
不是链表的结构有l必定有r
linsert :插入数据
before:从左插入
after:从右册插入
pivot:参数 原有的元素值
value:准备新增的数据
lset:
设置list中指定下标的元素值
lrem:
从list中删除count的个相同值的元素,count的值可以是0 可以是大于0 小于0
count>0表示删除的值从上往下删除
count<0表示从下往上删
等于0 全部删除
ltrim:
表示保留一个范围内的list值,其他都删除
lpop :
从list的头部删除元素,并且当前客户端获取删除的元素
rpop:
从尾部删除,返回元素数据
rpoplpush
从第一个list的尾部移除元素,添加到第二个list的头部
llen:返回list的元素个数
在redis中提供的复杂的数据类型,可以非常方便的对数据在内存中利用redis的能力进行计算,否则必须客户端将数据读取到代码中才可以做计算;极大的节省了带宽
String数据类型做缓存如何存储对象数据?
class User
{
private String name="haha";
private Integer age=18;
}
只能将user的对象转化成string的字符串 json
需求,对象数据age过了1年了,18-19
先读取字符串,转化成对象,修改18为19,转化字符串,存入缓存
redis提供的hash可以直接存储面向对象的数据
对于企业中诸多的复杂的业务逻辑中,需要计算数据的过程,都可以利用已知的redis提供的命令完成;