博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis基本操作
阅读量:3750 次
发布时间:2019-05-22

本文共 3816 字,大约阅读时间需要 12 分钟。

常用操作:

redis-server /usr/local/redis/redis.conf :指定配置文件启动clear:清屏select+库角标:选择数据库dbsize:当前数据库中key的数量keys *:所有键keys k*:以k开头的所有键exists key:键是否存在move key 库角标:把key剪切到角标数据库中expire key 秒钟:为给定key设置过期时间ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期type key:查看key是什么类型del key:删除key

string类型:

二进制安全:string可以包含任何数据
一个字符串value最多可以是512M
一个key对应一个value,可以保存任何类型的数据,如:jpg图片,序列化对象
字符的下标是从0开始的

set/get/del/append/strlenincr/decr/incrby/decrbygetrange/setrangesetex(set with expire)/setnx(set if not exist)mset/mget/msetnx(m:more)getset(先get再set)set	设置一个键值对 set name zhaoliusetnx	当且仅当键不存在时设置一个键值对,并返回1,否则返回0 setnx name zhaoliusetex key time valuesetrange 替换指定key的value值的字符串		setrange name 4 @qq.com	从下标为4的位置开始	    								当替换的长度小于原长度时,原字符串的多出来的内容不变mset	一次设置多个key-value,全部成功返回1,否则返回0,任何一个出现问题都保存不成功	mset key1 lisi ket2 wangwu key3 zhaoliumsetnx	一次设置多个key-value,当且仅当键不存在时返回1,否则返回0,任何一个已经存在,就保存不了。get	get keygetset	设置key的值,并返回一个key的旧值	getset key 20 设置key为20,并获取key之前的值getrange 返回key的子字符串getrange key 0 5 key的第0个字到第5个字符,一共6个字符mget	批量获取mget key1 key2 key3incr	自增1 incr keyincrby	incrby key 6 如果之前没有值,默认是0decrdecrbyappend	给key的value追加value,返回value长度 append key .comstrlen	取key的value的长度	strlen key

hash类型

类似于java中的map,string类型的filed和value的映射表,特别适合存储对象
kv模式不变,但v是一个键值对kv

hset/hget/hmset/hgetall/hdelhlenhexists key 在key中的某个值的keyhkeys/hvalshincrby/hincrbyfloathsetnxhset 设置hash filed为指定值	hset user:001 name yzhget 获取			hget user:001 name	得到yzhsetnx	当且仅当键不存在时设置	hsetnx user:001 name yzhmset 同时设置hash的多个field	hmset user:001 name yz age 22 sex nanhmget 批量返回hash的多个field	hmget user:001 name age sexhincrby 对hash的field加上值	hincrby user:001 age 5hexists	测试指定field是否存在	hexists	user:001 address 存在返回1,不存在返回0hlen	hash表里所有存在的field的数量	hlen user:001hdel	删除指定hash的field	hdel user:001 agehkeys	返回hash的所有field,不是值	hkeys user:001hvals	返回hash的所有field的值		hvals user:001hgetall 获取某个hash中全部的field及value

list类型

list是一个链表结构,可以左右添加等操作。主要功能是push、pop、获取一个范围的所有值等等
操作中的key为链表的名称。是一个双向string链表

(l:left/r:right)lpush/rpush/lrangelpop/rpop/rpoplpushlindex,按照索引下标获得元素(从上到下)llenlrem key n v :删N个valueltrim key index1 index2 :保留index1到index2之间的value到keylset key index valuelinsert key before/after 值1 值2lpush	在key对应的list的栈顶添加字符串元素	lpush mylist "world"	lpush mylist "hello"	lpush list 1 2 3 4 5:先存1再存2……lrange取出的顺序是存入的反向	最后一个是头部lrange	lrange 0 -1 代表从头到尾部,取出元素	hello worldrpush	在key对应的list的尾部添加字符串元素	rpush mylist "world"	rpush mylist "hello"	rpush list 1 2 3 4 5:先存1再存2……lrange取出与存入的顺序相同	最后一个是尾部linsert	在某个元素前面插入一个元素	linsert mylist before "world" "hello"在world前面插入hellolset	设置指定下标(默认从0开始)的元素	lset mylist 1 "hi"lrem	从list中删除n个和value相同的值,并返回删除的个数,不成功返回0	lrem mylist 3 "one" 从mylist里面删除3个one元素ltrim	保留第k个到第n个值到key	ltrim mylist start end	返回OK表示成功 start=k-1lpop	从list的栈顶删除一个元素	lpop mylist	返回删除的元素rpop	从list的尾部删除一个元素	rpop mylist	返回删除的元素rpoplpush	从第一个list尾部删除元素并添加到第二个list头部	rpoplpush firstlist secondlistlindex	返回index位置的元素	lindex mylist indexllen	返回list的size		llen mylist

set

无序无重复集合

sadd/smembers/sismemberscard key:获取集合里面有多少个元素srem key value:删除集合中元素srandmember key n:在key里面随机出n个valuespop key:随机出栈smove key1 key2 value1:将key1中的value1赋给key2差集sdiff:sdiff key1 key2,在key1中不在key2中交集sinter:sinter key1 key2,key1和key2中都有补集sunion:sunion key1 key2,所有不重复的valuesadd set01 1 1 2 2 3 3  返回(integer)3smembers set01          返回"1" "2" "3"smembers key:返回所有valuesismember key value:value是否是key里面的成员

zset

有序集合
zset和set是string类型元素的集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数
redis是通过分数来为集合中的成员进行从小到大的排序
zset的成员是唯一的,但分数却可以重复

zadd/zrange[withscores]zrangebyscore key [(]startscore [(]endscore [limit n m]:(表示大于或者小于,n表示从结果集中的第n个截取m个zrem key 某score下的value值:删除元素zcard:统计元素的个数zcount key score区间:统计区间的元素个数zrank key values值:获得下标值zscore key values值:获得分数zrevrank key values值:倒序获得下标值zrevrange key 0 -1:倒序输出zrevrangebyscore key endscore startscore:倒序排序输出    zdd zset01 60 v1 70 v2 80 v3 90 v4 100 v5zrange zset01 0 -1 [withscores]

转载地址:http://ztcsn.baihongyu.com/

你可能感兴趣的文章
冒泡排序
查看>>
ES6中类的定义
查看>>
vue3.0的router页面跳转
查看>>
C/C++内存区域划分详解
查看>>
mysql数据库安装资源、步骤及基本操作指令详解
查看>>
解决Powershell前面没有base,无法激活虚拟环境问题
查看>>
出现“qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ‘ ’even though it was found
查看>>
windows系统,安装cuda11.0+cudnn8.0记录
查看>>
RuntimeError: CUDA error: out of memory解决记录
查看>>
双系统下解决Ubuntu访问不了Windows磁盘文件问题记录
查看>>
pip安装时更换国内源实现加速
查看>>
RuntimeError: CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 7.79 GiB total capacity; 记录
查看>>
ubuntu文件管理器打不开,出现假死现象的解决办法记录
查看>>
ubuntu下使用命令行查看opencv版本
查看>>
Linux查看GPU使用情况(转载记录)
查看>>
Linux终端只有光标闪烁,无法输入任何东西解决记录
查看>>
AttributeError: ‘set‘ object has no attribute ‘append‘解决办法
查看>>
Ubuntu安装pycharm及快速创建pycharm的快捷方式,便于使用
查看>>
2021-03-10解决Bug记录
查看>>
虚拟环境已安装pytorch,而在pycharm中显示ModuleNotFoundError: No module named ‘torch‘的解决办法
查看>>