redis数据库
一.简介
Redis(Remote Dictionary Server)是一个开源使用的非关系型数据库
通常被称为数据结构服务器,其值可以为字符串,哈希,列表,集合,有序结合
共有16个数据库,编号从0开始,不支持用户自定义数据库名称。
redis数据库优势:
1.性能极高,写的速度81k次/s,读取速度110k次/s
2.数据类型丰富,低延时,高吞吐,存内存
3.数据备份和恢复
4.丰富的特性,可用于缓存,消息(按key设置过期时间过期后自动删除)
二.redis值的类型及相关操作:
1.字符串string
1)基础操作:
1.设置键,值,存储
set key value
2.值的获取
get key
key存在正常返回,key不存在返回nil
3.设置键值和过期时间,单位是秒
setex username 2 “value”
4.查看有效时间,单位是s
ttl key
5.设置/获取多个键值
mset key value key value…
mget key key key…
127.0.0.1:6379> mset name cxy age 25 hobby buying
OK
127.0.0.1:6379> mget name age hobby
1) "cxy"
2) "25"
3) "buying"
127.0.0.1:6379>
6.设置新的值时返回上一个值,记录上一个状态,便于恢复之前状态
getset key value
127.0.0.1:6379> getset name ccc
"cxy"
7.返回key中字符串的子字符串
getrange key start end
127.0.0.1:6379> set name abcdefghijklmn
OK
127.0.0.1:6379> getrange name 2 4
"cde"
2)redis运算(值要求为数字类型的字符串)
1.key值加1/减1
incr key || decr key
2.key值加上对应的整数/减去对应的整数
incrby key 数值 || decrby key 数值
3.追加值
append key value
4.获取值的长度
strlen key
127.0.0.1:6379> append name fine
(integer) 9
127.0.0.1:6379> get name
"todayfine"
127.0.0.1:6379> strlen name
(integer) 9
3)key键的操作
1.查看所有的key,支持正则表达式
keys *
keys m*
2.判断键是否存在,存在返回1 否则返回0
exists key
3.查看键对应的value类型
type key
4.修改key的名称
rename key newkey
5.当newkey不存在的时候,将key改名为newkey
renamenx key newkey
修改成功返回1,存在返回0
6.随机返回一个key
randomkey
7.删除键及对应的值
del key key…
8.删除所有key
flushdb 删除当前数据库中的所有
flushall 删除所有数据库中的key
2.哈希hash
1.设置单个值 | 设置多个值
hset valye field value
hmset key field value [field value]…
2.为哈希表key中的指定字段的整数值加上增量increment
hincrby key field increment
3.为哈希表key中的指定字段的浮点值加上增量increment
incrbyfloat key field increment
4.只有在字段field不存在时,设置哈希表字段的值
hsetnx key field value
5.获取一个字段的值 | 获取多个字段的值
hget key field
hmget key field [key field]
6.获取所有字段 | 获取所有值 | 获取所有字段和值
hkeys key
hvals key
hgetall key
7.返回包含数据的个数
hlen key
8.删除字段及值
hdel key field [key field]…
9.判断属性是否存在,存在返回1,不存在返回0
hexists key field
3.列表list
1.在头部插入
lpush key value [value]
2.在尾部插入
rpush key value [value]
3.将一个值插入到已存在在的列表头部,列表不存在时操作无效
lpushx key value
rpushx key value
4.移除并返回key对应列表的第一个元素 | 返回最后一个元素
lpop key
rpop key
5.通过索引取值
lindex key 索引值
不管左插入还是右插入,返回的所引致都是从左到右
6.获取列表的长度
llen list_name
7.裁剪列表,改为原集合的一个子集
ltrim key start end
8.返回存储在key的列表中的指定范围的元素
lrange key start end
4.集合set
1)无序集合,元素类型为string,元素唯一,不会重复
1.添加元素
sadd key member [member]…
2.获取key中的所有元素
smembers key
3.移除返回集合中的第一个随机元素
spop key
4.返回之河中一个或多个随机元素
srandmember key 返回随机元素
srandmember key count 返回count个随机元素
5.移除集合中的一个或多个成员
srem key member [member]
2)集合运算
1.多个集合的交集
sinter key [key]
2.多个集合的差集
sdiff key [key]
3.多个集合的并集
sunion key [key]
4.判断元素是否在集合中,存在返回1 不存在返回0
sismember key member
5.有序集合zset
1.添加
zadd key score member [score member]
2.获取,返回指定元素范围,后面时索引值
zrange key start end
3.返回元素个数
zcard key
4.返回有序集合key中,score在min和max之间的元素的个数
zcount key min max
5.返回member的score值
zscore key member