Redis
一、Redis介绍
Redis: 它是一个开源的非关系型的高性能的键值对的数据库。
Redis: 是一个开源的高性能键值对数据库。
它通过提供多种键值数据类型来适应不同场景下的存储需求,
并且借助许多高层级的接口使其可以胜任,如缓存、队列系统的不同角色。
NoSQL:非关系型数据库.
Redis官网: http://redis.io/
源码托管在github
https://github.com/antirez/redis
二、下载说明
windows版本:
下载地址:https://github.com/MicrosoftArchive/redis/releases
下载:Redis-x64-3.2.100.zip
linux版本:
下载地址:https://redis.io/download
下载:redis-3.2.8.tar.gz
三、安装
3.1 解压“资料\redis\ Redis-x64-3.2.100.zip”
3.1.1 配置文件:
-- redis.windows.conf(核心)
经常需要修改的配置:
bind 127.0.0.1 (ip)
prot 6379 (端口)
-- redis.windows-service.conf (windows服务相关配置文件)
3.1.2 redis-server.exe(服务端命令)
3.1.3 redis-cli.exe(客户端命令)
3.2 启动Redis服务器
3.2.1 windows服务:
a.注册服务:
redis-server --service-install redis.windows-service.conf --loglevel verbose
b.卸载服务: redis-server --service-uninstall
c.启动服务: redis-server --service-start
d.停止服务: redis-server --service-stop
3.2.2 用redis-server.exe命令直接启动:
redis-server redis.windows.conf
3.3 使用redis-cli客户端
3.3.1 连接服务器:
redis-cli (默认连接本机的6379端口)
redis-cli -h 127.0.0.1 -p 6379 (-h连接的ip地址 -p连接的端口)
3.3.2 ping 检查服务器是否正常运行
3.4 Redis-Desktop-Manager(Redis桌面管理器)
官方下载地址:https://redisdesktop.com/download
下载:redis-desktop-manager-0.8.8.384.exe
四、Redis的使用
1. 入门
set key value : 设置一个key的value值
-- key: 字符串
-- value: 字符串
get key: 获取指定的key的value值
2. 数据库有16个
切换数据库:select [0-15]
五、基本命令
1. keys pettern(* ? [1-3])
KEYS * (查询所有的键)
2. exists: 判断一个键是否存在。如果键存在则返回整数类型1,否则返回0。
3. type: 获得键值的数据类型。
返回值可能是string(字符串)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。
4. del: 删除键。可以删除一个或多个键,返回值是删除的键的个数.
5. help 命令
六、数据类型
6.1 字符串string(value)
key --> value(string)
a. 赋值与取值(单个key的值)
set key value
get key
b. 赋值与取值(多个key的值)
mset key value [key value …]
mget key [key …]
c. 递增
incr key
incrby key increment
d. 递减
decr key
decrby key decrement
e. 向尾部追加
append key value
f. 获取字符串长度
strlen key
注意:赋值时key一样,value值会覆盖
6.2 散列类型hash(Map)
key --> value的值为:{field : fieldValue, field : fieldValue}
a. 赋值与取值
hset key field value: 为指定的key 中的field 字段设置值
hget key field : 取指定key中的field字段值
hmset key field value [field value ...] : 设置指定key的多个字段值
hmget key field [field ...] : 取指定key的多个字段值
hgetall key : 取指定key中的所有字段与值
b. 判断字段是否存在
hexists key field
c. 删除字段
hdel key field [field ...]
d. 获取字段或字段值
hkeys key : 获取Key的所有字段field
hvals key : 获取key的所有字段对应的字段值
e. 获取字段的长度
hlen key
返回key 中字段的数量
注意:赋值时key的field一样,value值会覆盖,不一样就会新增一个field.
6.3 列表类型list(List)
a. 向列表两端增加元素
LPUSH key value [value ...] : 向key的左边增加元素
RPUSH key value [value ...] : 向key的右边增加元素
b.从列表两端弹出元素
LPOP key: 从左边弹出指定key中的元素值 (弹出时会删除key中元素值)
RPOP key: 从右边弹出指定key中的元素值 (弹出时会删除key中元素值)
c. 获取列表中元素的长度
LLEN key
d. 获取列表中指定范围的元素值
LRANGE key start stop
e. 删除列表中指定元素值
LREM key count value
f. 获得列表中指定索引的元素值
LINDEX key index
注意:list列表数据类型,元素值可以重复(有序)
6.4 集合类型set(Set)
a. 增加元素
SADD key member [member ...]
b. 删除元素
SREM key member [member ...]
c. 获得集合中的所有元素
SMEMBERS key
d. 判断元素是否在集合中
SISMEMBER key member
e. 获得集合中元素的长度
SCARD key
注意:set集合数据类型,元素值不能重复(无序)
6.5 有序集合zset(Set + 排序分数)
a、增加元素
ZADD key score member [score member ...]
b、获取指定范围的元素值
ZRANGE key start stop [WITHSCORES]
c、按照排序范围删除元素值
ZREMRANGEBYRANK key start stop
d、按照分数范围删除元素
ZREMRANGEBYSCORE key min max
注意:zset有序集合数据类型,元素值不能重复(有序)
七、Java客户端Jedis
Jedis类
JedisPool类
ShardedJedis类
八、redis的可视化工具
使用RedisDesktopManager,具体可以百度