西安建网站公司哪家好,郑州百姓网招聘信息官网,安徽省高路建设有限公司网站,用wordpress建一个网站#x1f4d1;前言
本文主要是【Redis】——Redis基本操作及使用的文章#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ #x1f3ac;作者简介#xff1a;大家好#xff0c;我是听风与他#x1f947; ☁️博客首页#xff1a;CSDN主页听风与他 #x1f304;每日一…前言
本文主要是【Redis】——Redis基本操作及使用的文章如果有什么需要改进的地方还请大佬指出⛺️ 作者简介大家好我是听风与他 ☁️博客首页CSDN主页听风与他 每日一句狠狠沉淀顶峰相见 目录 前言 Redis基本操作及使用什么是Redis关系型数据库和非关系数据库的区别 全局key操作查看所有的key删除查看key是否存在存在返回1不存在返回0查看key类型运算 Redis五种数据类型及操作value :都是字符串类型的(可加引号也可不加) string设置获取查看过期时间设置过期时间追加redis里面所有的value都是字符串类型的 设置/获取 多个 list添加查看获得list的元素个数设置修改数据删除 hash设置获取删除获取全部field value获取所有的field获取所有的value获取field的个数 set集合设置获取删除移动一个集合的值到另一个集合判断集合存在某个值交集并集差集 zset设置获取删除索引zcard 查看有序集合元素数zrangebyscore 返回集合中 score 在给定区间的元素zcount 返回集合中 score 在给定区间的数量zscore : 查看score值zremrangebyrank : 删除集合中排名在给定区间的元素(正向)zremrangebyscore : 删除集合中 score 在给定区间的元素 Redis发布和订阅文章末尾 Redis基本操作及使用
什么是Redis
Redis是由意大利人Salvatore Sanfilippo网名antirez开发的一款内存高速缓存数据库。Redis全称为Remote Dictionary Server该软件使用C语言编写Redis是一个key-value存储系统它支持丰富的数据类型如string、list、set、zset(sorted set)、hash。
redis是一种nosql数据库,他的数据是保存在内存中同时redis可以定时把内存数据同步到磁盘即可以将数据持久化还提供了多个语言的API操作比较方便
Redis特点: Redis以内存作为数据存储介质所以读写数据的效率极高远远超过数据库。Redis应用场景: 因为Redis交换数据快所以在服务器中常用来存储一些需要频繁调取的数据这样可以大大节省系统直接读取磁盘来获得数据的I/O开销更重要的是可以极大提升速度。 将这种热点数据存到Redis内存中要用的时候直接从内存取极大的提高了速度和节约了服务器的开销。
关系型数据库和非关系数据库的区别
关系型数据库 表和表之间存在的关系非关系型数据库 不存在表的这种概念,redis是键值对数据库通过key查找value 所以key是唯一的。
全局key操作
对redis五个数据类型都适用的命令
查看所有的key
keys *
keys n*删除
del key 例: (del name)查看key是否存在存在返回1不存在返回0
exists key查看key类型
type key运算 set num 1 # 自动识别字符串里面的 整数# 1incr key 例 (incr num)# -1decr key 例 (decr num)# 整数incrby key increment 例 (incrby num 50)# -整数decrby key increment 例 (decrby num 50)Redis五种数据类型及操作
string 字符串list 列表hash 哈希set 集合sorted sets 有序集合
key 有5种数据类型string、list、set、zset(sorted set)、hash。
value :都是字符串类型的(可加引号也可不加)
string
string是redis最基本的类型一个key对应一个value
设置
set key value 例(set name ppx)获取
get key 例:(get name)
# key是唯一的不能用同一个key 不然就会覆盖查看过期时间
# -1表示永久 -2表示 不存在
ttl key 例: (ttl name) 设置过期时间
# 给已经存在的key 设置过期时间
expire key seconds 例: (expire name 20)#设置key的同时设置过期时间
set key value ex seconds 例: (set age 18 ex 20)
或
setex key seconds value 例:(setex sex 20 男)追加
# 给已有的value再添加新的值
# append key value
例
append name love
#get nameredis里面所有的value都是字符串类型的
设置/获取 多个
# 设置多个 string
mset key value key value ...#获取多个
mget key key key ...
例
mget username password namelist
List类型是一个字符串列表可以在列头或列尾添加/删除数据在插入数据时如果该键不存在redis将为该键创建一个。
添加
#lpush 左添加 (栈) 先进后出
lpush key value #例: lpush mylist a b c d#rpush 右添加 (队列)
rpush key value #例: rpush mylist a b c d查看
# lrange key start stop ,查看索引范围内元素的值
例 查看所有
lrange mylist 0 -1#查看位与lindex位置上的元素, 返回列表中元素的值。index从0开始当index超出索引时返回null
lindex key index #例: lindex mylist 3获得list的元素个数
llen key #例 llen mylist设置修改数据
#指定索引号进行修改
lset key index value删除 - lpop 删除左边第一个lpop key #例 lpop my_rlist- rpop 删除右边第一个rpop key #例 rpop my_list
- lrem 删除指定rpush test_list a a b b c d e a d f m c#lrem key count value#count 0 从左往右 删除数量为count的value例 : lrem test_list 2 a#count 0 删除所有的 value例 : lrem test_list 0 a#count 0 从右往左 删除数量为count的value例 : lrem test_list -1 bhash
是一个键值(keyvalue)对集合。是string 类型的 field 和 value 的映射表hash 特别适合用于存储对象, field 域, value 值
设置 # hset key field value#将field-value设置到hash表中若key不存在会新建hash表再赋值已存在则会覆盖例 user { name:jianeng}hset user name jianeng#设置多个#hmset key field value [field value]例 user{name:jianeng , age:18, sex:male }hmset user name jianeng age 18 sex male获取 # hget key field例hget user name#获取多个# hmget key field field例hmget user name age删除 # hdel key field例hdel user name获取全部field value # hgetall key 例 itmeshgetall user获取所有的field # hkeys key例 keyshkeys user获取所有的value # hvals key 例 values hvals user获取field的个数 # hlen key例 hlen userset集合
元素为string类型无序集合元素具有唯一性不重复
设置 # sadd key value [value] 唯一无序#将一个或多个member元素加入到集合key中若member已存在那么会忽略此元素例sadd my_set m n b v c x z b获取 # smembers key例smembers my_set删除 - srem指定删除# srem key member例srem my_set c- spop随机删除# spop key例spop my_set移动一个集合的值到另一个集合 # smove oldkey newkey member例smove my_set my_set2 z判断集合存在某个值 # sismember key value例sismember my_set2 b 交集 # sinter key1 key2 ..例sinter my_set my_set2把 key1 key2的交集合并到newkey# sinterstore newkey key1 key2例sinterstore new_set my_set my_set2并集 # sunion key1 key2 ...例sunion my_set my_set2把 key1 key2的并集合并到newkey# sunionstore newkey key1 key2例sunionstore new_set2 my_set my_set2差集 # sdiff key1 key2sdiff my_set my_set2把 key1 key2的差集合并到newkey# sdiffstore newkey key1 key2例sdiffstore new_set3 my_set my_set2
- 获取集合个数# scard key例scard my_set
- 随机返回一个# srandmember key例srandmember my_setzset
类似于Set,不同的是Sorted中的每个成员都分配了一个分数Score用于对其中的成员进行排序升序。 zset的成员是唯一的,但分数(score)却可以重复。
设置 # zadd key score member例zadd my_zset 1 onezadd my_zset 2 twozadd my_zset 3 threezadd my_zset 4 fourzadd my_zset 5 five获取 - zrange正序#zrange key start stop (withscores)zrange my_zset 0 -1 withscores- zrevrange倒序#zrevrange key start stopzrevrange my_zset 0 -1 withscores删除 #zrem key memberzrem my_zset two索引 - zrank正序# zrank key member例zrank my_zset three- zrevrank反序# zrevrank key member例zrevrank my_zset threezcard 查看有序集合元素数 # zcard key例zcard my_zsetzrangebyscore 返回集合中 score 在给定区间的元素 # zrange my_zset 0 -1 withscoreszrangebyscore my_zset 2 3 withscores#返回了 score 在 2~3 区间的元素zcount 返回集合中 score 在给定区间的数量 # zcount key min max例zcount my_zset 2 3zscore : 查看score值 # zscore key member例zscore my_zset twozremrangebyrank : 删除集合中排名在给定区间的元素(正向) # zrange my_zset 0 -1 withscoreszremrangebyrank my_zset 1 3zremrangebyscore : 删除集合中 score 在给定区间的元素 # zrange my_zset 0 -1 withscoreszremrangebyscore my_zset 3 5Redis发布和订阅
#发布
publish 频道 消息# 订阅
subscribe 频道文章末尾