Redis的数据类型及常用指令。

5种基本类型 string list hash set zset

set key value 存储 key value
get key 获取key的value
exists key 判断是否存在key
key * 列出所有的key
flushall /flushdb 清空
expire key time 设置过期时间(秒)
ttl key 查看key剩余过期时间(秒)
type key 查看key的类型

-----String-----
append key value 在key的value值追加字符串
strlen key 获取key的value值长度
getrange key i j 获取key的v值截取下标i到j(j为-1 获取全部字符串 等于get k)
setrange key i xxx 修改key的v值下标为i及后面对应的xxx长度-1的值

incr key key自增1
decr key key自减1
incrby key v key的value值增加v
decrby key v key的value值减去v

setex key time value 设置过期时间
setnx key value 不存在则设置------分布式锁------
mset k1 v1 k2 v2… 批量设置
mget k1 k2… 批量获取
msetnx k1 v1 k2 v2 不存在则批量设置(原子操作,任何一个存在则失败)

#对象
set object:id {属性1:属性1值,属性2:属性2值…}

mset object🆔属性1 属性1值 object🆔属性2 属性2值…
mget object🆔属性1 object🆔属性2…

getset 先get再set

-----list-----列表:可以想象成链表,可以头插,可以尾插;如果列表不存在,则新建,存在则新加入;里面的值可重复

lpush list v1 在左侧放入数据
lrange list i j 从左侧获取
rpush list v2 在右侧放入数据

lpop list 从左侧移除第一个
rpop list 从右侧移除第一个

lindex list i 根据下表获取值
llen list 获取list长度
lrem list n xxx 移除list中n个xxx
ltim list i j 根据下表截取(只保留被截取的)

rpoplpush list1 list2 移除list1最后一个元素并放入list2

lset list i v 为指定下表赋值(前提是list及该下标存在)
linsert list after/before v1 v2 将v2插入到list中v1后面/前面

-----set-----集合:无序,不重复;
sadd myset v1 添加
smembers myset 获取
sismember myset v1 判断v1是否在set里
scard myset 获取set中的个数
srem myset v1 移除
spop myset 随机删除
srandmember myset n 随机抽出n个元素

smove set1 set2 从s1随机移除一个 保存到s2
sdif s1 s2 差集
sinter s1 s2 交集
sunion s1 s2 并集

-----hash-----map:k - map 更适合存储对象
hset myhash k1 v1 存值
hget myhash k1 取值
hmset myhash k1 v1 k1 v2… 批量设置
hmget myhash k1 k1… 批量获取
hgetall myhash 获取所有值
hdel myhash k1 删除k1

hlen myhash 获取长度
hexists myhash k1 判断是否存在

hkeys myhash 获取所有的k
hvals myhash 获取所有的v
-----zset-----有序集合
zadd myset 1 one 设置
zadd myset 2 two 3 three 批量设置

-----geo-----地理位置 基于zset
geoadd china:city 经度 维度 城市 添加
geoadd china:city 经1 维1 名1 经2 维2 名2 批量添加
geopos china:city 城市名1 获取
geodist china:city 名1 名2 m/km/mi/ft 获取距离米/千米/英里/英尺
georadius china:city 100 30 1000 km [withdist withcoord count 1] 获取 100 30 经纬度为中心1000km为半径的城市[显示距离 显示信息 显示1个]
georadiusbymember china:city beijing 1000 km 获取china:city中距离北京1000km内的城市

-----hyperlolog----页面统计(容错率0.81%) 存储需要12k
pfadd mykey v1 v2 v3… 设置
pfcount mykey 统计数量
pfmerge mykey3 mykey mykey2 把mykey和mykey2合并成mykey3(去重)

-----bitmaps-----位存储(占1bit) --1存在 0不存在
setbit mykey k v 设置(v=0 or 1)
getbit mykey k 获取
bitcount mykey 统计为1的个数

-----事务-----先放入队列,再依次顺序执行;
如果命令都问题,则事务全部不执行;如果有语法性问题(如1/0),其他事务继续执行
一次性、顺序性、排他性,没有原子性
multi 开启事务
… 各种命令
discard 取消/放弃事务
exec 执行事务

-----乐观锁-----
watch key 加锁
… 操作
unwatch 解锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值