redis常用命令


```java
redis命令

1.String 类型、

set get 
incr key     	//自增
decr key	 	//减少
incrby key 10   //设置自增步长
decrby key 8  	//设置自减步长
flushdb    		//清除数据库
strlen key   	//查看数据的长度
expire key 10   //设置属性过期时间(s) 
ttl key  		//查看属性目前还剩多长时间
append key value 		//存在增添数据  否则则是新建数据
getrange key start end 	//截取字符串
getrange key 0 -1 		//获取所有的字符串
setrange key start end  //替换index定位的字符串
setex key time value 	//设置过期时间
setnx key value 		//如果不存在则创建 存在key则创建失败
move key db  			//将属性移动到别的数据库
mset key value [key value....]  //批量设置属性及值
mget key [key........]   		//批量获取属性和值

小结: 计数器  统计多单位的数量 粉丝数  对象缓存储存

2.list属性

lpush key value  			//将属性插入列表头部(左)
lrange key start end    	//获取区间的具体的值
rpush key value [value....] //将一个或多个值插入右边
lpop key 					//删除第一个元素
rpop key					//删除最后一个元素
lindex key index        	//通过下表获取list的某一个值
llen key        			//返回key集合的长度
lrem key start stop    	 	//移除指定的值  可用于取关 uid
ltrim key start stop    	//修剪 截取指定的长度
rpoplpush key	key1		//移除列表的最后一个元素,并将它移入新的列表中
lset key index value 		//将列表中指定下标的值替换为另外一个值,更新操作
linsert key before/after pivot value //将新的属性插入已存在的值的前面或者后面

小结:  它实际是一个链表,before node after right left 都可以插入值
		key存在,新增内容
		key不存在 创建新的链表
		如果您移除了所有的值,空链表,也代表不存在
		在两边插入或者改动值,效率最高,改动中间元素,相对来说效率低一些

消息排队  消息队列(lpush rpop)  栈(lpush lpop)




3.set集合:
set中的值是不能重读的

sadd key value    		//添加元素
smembers key 			//显示key中的所有元素
sismember key value     //判断value元素是否是key中的值
scard key  				//获取key中的元素的个数
srem key value			//删除key中的value元素
srangemember key count	//随机展示key中的count个元素
spop key count 			//随机删除key的count个元素
smove key key1 value    //将key的value值移动到key2中
-----------------------------------------------------------------------
微博,qq,  共同关注
数字集合类:
- 差集: sdiff
- 交集: sinsert
- 并集: sunion
xx key key2

4.hash:
Map集合 key-map! 时候这个值是一个map集合,本质和string类型没有太大的区别,还是一个简单地key-value!

hset map key value   			//创建带有value的key 并将其放入map中
hget map key  					//获取一个字段值
hmset map key value key1 value1 //set多个key-value
hgetall map 					//获取所有的数据
hdel map key 					//删除hash指定的key ,则value值也随着消失了
hlen hash 						//获取hash表的字段数量
hexists hash key 				//判断hash中指定字段是否存在
hkeys hash						//只获取所有的key
hvals hash 						//只获取所有的value
hincrby hash key count    		//指定增量
hsetnx hash key value 			//如果存在则不可以设置 不存在则可以设置

小结: hash变更的数据user name age,尤其是用户信息之类的,经常变动的信息,hash更适合于对象的储存,string更适合于字符串储存	


5.zset(有序集合)

zadd key score member  [score menber ...]//添加一个值 或者多个值
ZRANGEBYSCORE key -inf +inf				 //显示所有的用户 从小到大
zrevrange key 0 -1 						 //从大到小排序
ZRANGEBYSCORE key -inf +inf withscores   //显示全部的用户并且附带成绩
zrem key members						 //移除某个成员
zcard key   							 //获取有序集合中的个数
zcount key min max						 //获取指定区间的成员数量


小结: set 排序   可以用户储存班级成绩表,工资表排序
普通消息 重要消息   带权重进行判断
排行榜应用信息,取Top N 测试

五大数据类型
String hash set zset list

三种特殊类型
geospatial地理位置
hyperloglog 可以用来怼页面浏览的人数进行记录
bitmap 打卡 登录和未登录   包括两种状态的都可以使用

1. geospatital

geoadd key longitude latitude member   //添加一个或多个地理位置
例:geoadd china:city 116.40 39.90 beijing 

geopos key member    				//获取指定的城市坐标

geodist key member1 member2 km 		//两者之间的距离

georadius key 经度 维度 半径 km 		//以给定的经纬度为空心,找出某一半径的元素
georadius key 经度 维度 半径 km withdist  //显示到中间距离的位置  带距离

xxx   withcoord   					//显示他人的定位信息  带有经纬度

GEORADIUSBYMEMBER key member value km   //找出位于指定元素周围的其他元素

geo的底层是zset


2. hyperloglog:
网站的uv (一个人访问一个网站多次,但是还是算作一个人)
pfadd key value [value....]  //创建元素
pfcount key  //统计元素的技术数量  基数:去掉重复的
pfmerge key key1  key2     //合并两组key1 key2 =>key并集

3.bipmap:

setbit key offset value  //设置offset的状态
例如
setbit sign 0 1      周一 :1   代表周一打卡了

getbit sign offset   //查看某一天的情况
bitcount sign        //统计数量





事务:

redis事务的本质:
一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行的过程中,会按照顺序执行
一次性  顺序性  排他性    执行一些列的命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值