Redis常规操作,日常查询类

Common

1.1 Redis的基本介绍

Redis是NoSQL数据库,不是关系数据库(没有主键);是远程字典服务器,单机的读写速率达到15W QPS,通常适合做缓存,高性能的分布式内存数据库,并支持持久化的NoSQL的数据库

1.2 数据库的分类

Redis内包括16种数据库;支持5大类型数据:String类型(字符串)、hash类型(哈希)、list类型(列表)、set类型(集合)、zset类型(有序集合)

1.2.1 String类型 (字符串) key -value

String类型是redis中最基本的类型,一个key对应一个value;是字符串安全的;可以存放图片,单个字符串最大512M,中文在控制台内输人(出)时,会自动转码,不影响最后读取;
Set key value 若存在相同的key则为修改,不存在则为新建

1.2.1.1 Setex 键秒值,超时关闭

使用 setex key 10 value //中间设置10为10s,10秒后删除

1.2.1.2 Mset 批量定义

M为mess,mset key1 value1 key2 value ;同理可以通过mget批量获取
Mget key1 key2 goland会直接获取到一个切片

1.2.2 Hash类型 (哈希)

Hash是描述综合事物的一种方式,是一个键值对集合,是一个string类型的field和value的映射表,域—值映射,hash特别适合存储对象
Hset user name tom 存放;取出同理; hget user name 取出
Hgetall user 取出全部内容 hdel user name 删除特定值
Hmset test name join age 18 hmget test name age
批量存储数据时,若存储的值内如果有空格,则需要使用双引号 “join tom”
Hlen user 统计含有多少字段
Hexists key field 查看哈希表表key中,field是否存在,回复0、1

1.2.3 List类型 (列表)

列表是简单的字符串列表,按照插入顺序排序。可以添加到一个元素的头部与尾部,List的本质是链表,元素是有序的,元素可以重复
List相当于管道,从左到有进行数据的传输(先进后出),中间不可断
Lpush city Beijing shanghai guangzhou //键入(从右端插入),每个值都会插入最右端
Rpush city Beijing shanghai guangzhou //键入(从左端插入),每个值都会插入最左端
Lrange city 0 -1 //取出第0个数 到 倒数第1个数包含两端(从最左端的开始取)
Lpop city 0 -1 //从左端开始数,取出并移走相应数据(左闭右开,不包括右边数值)
Rpop city 0 -1 //同上,移走最从右端开始

1.2.4 Set集合类型 (集合)

Set是String类型的无序集合,而且元素不能重复
Sadd email @1 @2 @3 //添加元素
Smembers email //取出全部元素,取出的元素也是无序的
Sismember email @1 //判断是否存在成员,有返回1
Srem Email @1 //删除指定数值,只能一个个删除

1.2.5 Zset集合类型 (有序集合)

1.3 基本操作

进入命令行后,通过set指令进行输入
 Set key value //创建
 Get key //获取值
 Select index //切换数据库
 Dbsize //统计当前数据库的键值对的数目
 Flushdb flushall //清空所有数据库的键值对
 Expire //给对应的值设置有效的读取时间 expire name 10

2 三种特殊类型

2.1  Geospatial 地理位置

推算空间距离的计算,南北极不能直接添加,一般用Java直接导入

2.1.1 GEOADD

添加地理位置(纬度、经度、名称)
http://www.jsons.cn/lngcode/ 网页中是经度、纬度
geoadd China:City 106.50 29.53 Chongqing

2.1.2 GEOPOS

查询对应城市的经纬度
GEOPOS China:City Chongqing

2.1.3 GEODIST

返回俩地之间的距离
使用的单位:m(默认)、km、mi英里、ft英尺
geodist China:City Heihe Beian km

2.1.4 GEORADIUS

附件的人
输入一个经纬度和半径,返回所在半径内的成员
GEORADIUS China:City 110 30 2000 km

后面可以附带其他参数(可重加)
withdist 到指定经纬度的直线距离,返回千米数
withcord 显示结果的经纬度,返回经纬度的值
count n 最多显示n个数据(最近的)

2.1.5 GEORADIUSBYMEMBER

与上相同,但是以一个内部元素为中心

2.1.6 GEOHASH

返回一个或者多个位置的元素的hash字符串,(保密精确位置),两个字符串越相近则位置越相近
Grohash China:City Beijing Chongqing

2.2 Hyperloglog

基数统计的算法(ps : 基数是不重复的元素,可以接受误差)
优点:占用的内存是固定的
存在0.81%的错误率
添加
PFadd 名称 元素1 元素2 ……
PFadd mykey a b c d e f g

统计存在多少元素
PFCOUNT 名称
PFCOUNT mykey
7

合并分支(只统计不重复的)
PFMERGE 新组合的名称 需要组合的组1 需要组合的组2
PFMERGE mykey3 mykey2 mykey1

2.3 Bitmap

统计大数据下的用户信息,只有两个信息(活跃、不活跃;登录、未登录)
设置
setbit sign 0 0 setbit sign 0 1 只能存两种个状态
取出
getbit sign 0
统计
bitcount sign 统计为1 的值,可以加参数开始和结束

2.4 事务

Redis单条命令不保证原子性;没有隔离级别的概念(只有发起执行命令的时候才执行),具有秩序性、顺序性、排他性
Redis的事务
开启事务()、命令入队()、执行事务()

执行:
开启事务-----multi
命令(……)
执行事务-----exec

放弃事务,该事务内所有值都会被放弃
Discard
Ps:若命令写错,也全部都不会执行。若写法有问题,没有问题的代码会成功执行

监控:watch
悲观锁,什么时候都会出问题,无论什么都会加锁。
乐观锁,认为什么时候都不出问题,只在更新的时候,查看是否修改过值即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值