目录
四,redis特殊数据类型(不常用,这里不多介绍,有需要可以去官网详细了解)
一, redis介绍
redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
二,redis可以用来干嘛?
1内存存储,持久化
2效率高,可用高速缓存
3发布订阅系统
4地理信息分析
5计时器,计数器
.........
三 ,redis的五种基本数据类型
redis支持五种数据类型,分别是string,hash,list,set及zset(sorted set)。
1redis默认有16个数据库,默认使用第0个,可以使用select进行切换数据库
dbsize :指令查看db大小
flushdb:清除当前数据库
flushall :清除全部数据库内容
keys* :获取所有的key
exists key的值 可以查看是否存在这个key,存在返回1,不存在返回0
expire key的值 过期时间
1-.String类型操作 命令
(1)set key1 "hello" 设置一个key值
(2)get key1 获取值
(3)incr 加key 自动加1; decr加key 自动减1
(4)incrby key值 10 :加10 设置减多少同理
(5)getrang key值 0 3 :截取获取字符串
(6)setx key3 30 ''hello'' 表示设置一个值为hello的key3,过期时间为30秒
(7)mset 批量设置
(8)mget批量get
2 -List类型介绍
(1)lpush list 往list里面添加数据
(2)lrange 0 -1 获取全部数据
(3)lpush 从左侧插入(队列头部),rpush从右边插入(队列尾部)
(4)lpop rpop 从左边移出和从右边移出
(5)lindex 获取下标的值
(6)llen获取长度
(7)lrem 移出list中指定个数的value
(8)ltrim 修剪命令
(9)rpoplpush 移出list最后一个值复制到别的list中
(10)lset修改list指定下标的值
3 -Set类型
(1)sadd myset ''hello'' 添加集合
(2)smembers myset 获取集合内容
(3)sismembers myset hello判断hello是不是在集合中
(4)set无序不重复
(5)spop 移出集合中的值
(6)smove myset myset2 hello :将hello从集合移动到另一个集合
(7)sdiff key1 key2 获取第一个为主的差集
(8)sunion key1 key2 获取并集
(9)sinter key1 key2 获取交集
4 -hash集合
本质方法和hash类型没有太多区别
(1)hset myhash file1 hello设置一个hash集合存key为file1 值为hello
(2)0hmget 获取
(3)hgetall 获取全部
(4)hdel myhash file1 删除指定字段,对应的值也删除了
(5)hkeys 获取所有key
(6)hvals 获取所有value
5 -zSet
可以添加有序
zadd keyset1 权重 值 :添加元素
zrangbyscore zset1 -inf +inf 获取从小到大的内容
zrang 集合 0 -1 获取所以
zrevrang zset1 -1 0 获取从大到小内容
zrem 移出
有序集合,用途可以存成绩,权重
四,redis特殊数据类型(不常用,这里不多介绍,有需要可以去官网详细了解)
1.geospatial类型主要用来存储地理信息
geoadd 添加城市坐标信息
geopos 获取指定城市的坐标
geodis 返回两个城市之前的直线距离
georadius 已给定城市为中心,获取指定范围半径内的存在点位
2.hyperloglog类型
# 用于向 HyperLogLog 添加元素 # 如果 HyperLogLog 估计的近似基数在 PFADD 命令执行之后出现了变化, 那么命令返回 1 , 否则返回 0 # 如果命令执行时给定的键不存在, 那么程序将先创建一个空的 HyperLogLog 结构, 然后再执行命令
pfadd key value1 [value2 value3]
# PFCOUNT 命令会给出 HyperLogLog 包含的近似基数 # 在计算出基数后, PFCOUNT 会将值存储在 HyperLogLog 中进行缓存,知道下次 PFADD 执行成功前,就都不需要再次进行基数的计算。
pfcount key
# PFMERGE 将多个 HyperLogLog 合并为一个 HyperLogLog , 合并后的 HyperLogLog 的基数接近于所有输入 HyperLogLog 的并集基数。
pfmerge destkey key1 key2 [...keyn]
3.bitmap类型
常用命令 | 作用 |
---|---|
1、getbit key offset | 用于获取Redis中指定key对应的值,中对应offset的bit |
2、setbit key key offset value | 用于修改指定key对应的值,中对应offset的bit |
3、 bitcount key [start end] | 用于统计字符串被设置为1的bit数 |
4、bitop and/or/xor/not destkey key [key …] | 用于对多个key求逻辑与/逻辑或/逻辑异或/逻辑非 |
后续介绍一下redis事务,持久化~~