1 redis的介绍
Redis(Remote Dictionary Server ),是一个开源的使用ANSI C语言编写、可基于内存亦可持久化的日志型、Key-Value数据库。
2 特点
1.Redis读取的速度是110000次/s,写的速度是81000次/s
2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4.持久化--磁盘,主从复制(集群)
5.官方不支持window系统,但是又第三方版本。 linux系统。
3 如何使用redis
1. 上次redis的压缩文件 并解压----->源码
2. 进入到解压目录
2. 编译 make
3. 安装 make install
4. 启动redis redis-server /redis的配置文件
开启redis服务。
redis-server redis.conf
通过redis客户端访问redis服务
redis-cli -h redis服务段的ip -p 端口号
4.redis中基本的命令
(1)对key的操作
keys * :查询所有的key
del k1 k2...:删除指定的key
expire k time :为指定的key设置过期时间
ttl k: 查询k的剩余时间 -1 表示该key没有过期时间 -2没有指定的key
(2)对数据库的操作 默认有16个1数据库
select index:选择数据库
flushdb:清空当前所在的库
flushall:清空所有的库
只有交付客户的时候才会把测试数据清空。
5.redis支持的常见的数据类型
1. string字符串类型
2. list 队列类型
3. hash 哈希类型
4. set 集合类型
5. sorted set 有序集合类型
5.1 string字符串类型。value值为字符串类型。
可以存放任意类型的字符串。Java中任何对象都可以转换成字符串。
string类型支持的命令
set key value: 设置key和value.
get key:获取指定key的value.
mset key value key value key value...: 可以同时设置多个key和value值。
mget key key key...:获取指定key 的value值。
setnx key value: 如果设置的key已经存在则不设置返回0,如果设置的key不存在则把该key和value放入到redis中返回1。
incr key: 递增 针对的数据值必须为数字 应用:点赞 收藏。
decr key: 递减 针对的数据值必须为数字 应用:点赞 收藏。
5.2list列表数据类型。 value的值为一串列表
1. lpush key list: 存放list数据类型。
2. lpop key:获取最左边的元素 并从列表中移除该元素。
3. lrange key start end: 获取在指定范围的元素。
5.3 hash散列数据类型 value的值为 map数据结构
适合存放java对象
hset k field value 存放列表数据类型。
hget k field:根据指定的key获取指定field对于的value值。
hgetall k: 获取k对于的map数据。
hdel k field field:删除指定k对应的field内容。
hkeys k: 获取所有的field
HVALS k: 获取所有的value
5.4 set集合 value类型为集合类型 它的值不能重复
sadd k value value value :这些value不允许重复
smembers k :获取所有的成员
spop k: 移除并返回集合中的一个随机元素。
SINTER k3 k4 : 求k3和k4的交集。
5.5 sorted set 有序集合类型 和set区别就是增加了一个新的score字段
zadd k score value score value score value :redis会安装score为value排序
zrange key start end: