中文官网:http://www.redis.cn/
服务器端redis安装:https://blog.youkuaiyun.com/Allencharm/article/details/128405686?spm=1001.2014.3001.5501
一、基础信息
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
二、基本命令
set name1 zhangfei ------设置key为name1,value为zhangfei的数据
1)ping命令 --- 测试客户端和服务端是否连通
2)shutdown --- 停止服务 或者在 外面 bin 目录下 ./redis-cli shutdown 重启 ./redis-server redis.conf 或者在 服务器 ./redis-server
3)quit 、exit --- 退出客户端登录
4)keys * --- 查看当前库中有多少数据--显示key名称
5)在 redis 中默认16个库,编号0-15,默认使用0号库;select 数字 --- 切换使用库
6)flushdb --- 删除当前库中数据
7)flushall --- 删除所有库数据
8)expire --- 设置数据有效时间 expire name1 100 秒
9)ttl --- 查看剩余有效时间 ttl name1
10)exists --- 查看键值对是否存在 exists name1
11)del -- 删除键值对 del name1 name2 可以删多个
12)type -- 判断键值对数据类型 type name1
三、五大数据类型
redis中不同数据结构(数据类型)
字符串结构 — string、列表结构 — list、集合结构 — set、散列结构 – hash、有序集合结构 – zset/sorted set 有序去重
1)字符串结构 — string
A、简而言之是指key-value结构中,value部分是字符串
B、常用专属命令:
set -- 存数据、修改 set name1 zhangfei
get -- 取数据 get name1
append -- 追加 append name1 lihai 追加的字符串不能有空格
在value为数字时,可以增减量操作 incr 增+1 decr 减-1,incrby 增指定量 decrby 减指定量
mset -- 一次存多对数据
mget -- 一次获取多对数据
strlen --- 获取字符串长度
2)列表结构 — list
A、结构特点是:key-value结构,value部分是list结构(符合java的list列表特点)
B、专用命令:
lpush rpush -- 存数据 可以从两头加入数据
lpush ages 22 34 21 45 20 : 20 45 21 34 22 (先进后出)
rpush names zhangsan lisi wangwu zhaoliu zhangsan : zhangsan lisi wangwu zhaoliu zhangsan (先进先出)
lrange --- 取数据 从左往右取
取 key 集合中指定的 start 位置到 stop 位置的内容(-1代表集合结束)
lrange ages 0 2; lrange ages 0 -1; lrange ages 0 100
lpop rpop -- 删除两端数据
lpop删除key集合的第一个元素 rpop删除key集合的最后一个元素
lindex-----获取key集合的index索引的元素
语法:lindex key index
lindex ages 2
lrem-----删除key集合的count个索引的元素(集合中有重复值)
语法:lrem key count value
192.168.18.200:6379>lrem ages 2 45 (在 ages 列表中删除 2 个45的值)
3)集合结构 — set
A、结构特点是:key-value 结构,value 部分是 set 结构(符合 java 中 set 集合特点:(无序去重))
B、专用命令:
sadd --- 存数据 sadd key value1 value2 ...
smembers -- 取数据 members key
scard -- 统计成员个数 scard key
spop -- 随机删除值 spop key
srem --- 指定删除某值 srem key value
交并差 -- sinter sunion sdiff
sinter seta setb (交)
sunion seta setb (并)
sdiff seta setb (差)
4)散列结构 – hash
A、结构特点:key-value,value(可以看做是map) 部分是双列结构 (符合 java 中 map 结构特点)
B、专用命令:
hset -- 存数据(一次存一个小对)
hset key field value
hset person name lisi
hmset -- 存数据(一次存多个小对)
hmset key field1 value1 field2 value2 ....
hmset student name wagnwu age 22 gender man
hget -- 取数据(一次取一个小对)
hget key field
hget person name
hmget -- 取数据(一次取多个小对)
hmget key field1 field2 ....
hmget student name age gender
hincrby hincrbyfloat -- 增量操作
hincrby h1 age1 15 hincrby h1 age1 -5
hincrbyfloat h1 sal 3.14
hdel -- 删除
hdel key field1 field2 ...
hdel student name gender age
hkeys -- 获取所有key hkeys key :hkeys student
hvals -- 获取 key 的值 hvals key :hvals student
5)有序集合结构 – zset/sorted set 有序去重
A、结构特点:key-value,value部分还是小对结构,小对中 score 的部分必须是数字,小对中 member 部分任意,
利用 score 部分进行排序,默认升序显示,score 允许重复,member 不允许重复
B、专用命令:
zadd -- 存数据
zadd key score value ...
zadd students 1 zhangsan 3 lisi 2 wangwu 5 zhaoliu
zrange -- 取数据
zrange key start stop
zrange students 0 -1
zrevrange -- 降序取数据
zrevrange key start stop
zrevrange students 0 -1
zscore -- 取分数 score 部分
zscore key value
zscore students zhangsan
zrank --- 返回有序集中指定成员的排名
ZRANK key member:ZRANGE salary 0 -1 显示所有成员及其 score 值