Redis命令
2022/8/6 2:22:48
本文主要是介绍Redis命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
启动关闭redis服务命令:
微信交流群:Java技术沟通群⑤(点击加入)
启动:redis-server
开启服务:redis-server 进入:redis-cli -h localhost -p 6379 ☁ ~ redis-server ☁ ~ redis-cli -h localhost -p 6379 localhost:6379>
Windows服务 D:\software\Redis-x64-3.2.100>redis-server --service-start [23804] 15 Jan 11:01:26.783 # Redis service successfully started. D:\software\Redis-x64-3.2.100>redis-server --service-stop [1240] 15 Jan 11:01:52.459 # Redis service successfully stopped. D:\software\Redis-x64-3.2.100>redis-server --service-start [8924] 15 Jan 11:03:12.491 # Redis service successfully started. D:\software\Redis-x64-3.2.100>redis-cli.exe -h 127.0.0.1 -p 6379 127.0.0.1:6379> set userinfo xiaoming OK 127.0.0.1:6379> get userinfo "xiaoming" 127.0.0.1:6379>
关闭:
方式一: 先使用ps -ef|grep redis 或者是 ps aux|grep redis来查看redis的端口,然后输入kill redis端口号来关闭redis后台.
方式二: redis目录下 ./redis-cli shutdown
卸载服务:redis-server --service-uninstall
连接redis服务命令:
本地启动:redis-cli 远程启动:redis-cli -h host -p port -a password
输入shutdown 便成未连接状态,输入exit退出
redis数据类型
redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
Redis支持多种类型的数据结构,五种基本数据类型:字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询;三种特殊数据类型:bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
String
Redis自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型。string 是 redis 最基本的类型,string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
这是最简单Redis类型。如果你只用这种类型,Redis就像一个可以持久化的memcached服务器(注:memcache的数据仅保存在内存中,服务器重启后,数据将丢失)。
我们用redis-cli来玩一下字符串类型:
> set mykey somevalue OK > get mykey "somevalue"
set key value : #设置key-value get key :#获取key的value exists key #key是否存在 getset key value :为key设置新value,并返回key的旧value mget key1 key2 key3.... :获取一个或多个key的value setnx key value :key不存在时设置key的value setex key seconds value :将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。 strlen key :返回key所存储的字符串的长度 mset key1 value1 key2 value2 .... :同时设置一个或多个key-value incr key :将key中存储的数字值增加1 decr key :将key中存储的数字值减1 incrby key increment :将key所存储的值加上给定的增量值increment append key value :如果key存储的值是一个字符串,append命令将指定的value追加到key原来bvalue的末尾。#追加字符串,若key不存,相当于set key value
Hash
hash 是一个键值(key=>value)对集合。 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
hset key field value [field value] :存放指定key的field和value值 hdel key filed1 field2 :删除一个或多个哈希表字段 hexists key field :查看哈希表key中,指定的字段是否存在 hget key field :获取存储在哈希表中指定字段的值 hincrby key field increment :为哈希表key中指定的字段的整数值加上增量increment hlen key :获取哈希表中字段的数量 hkeys key :获取所有哈希表中的字段 hvals key :获取哈希表中所有的值 hgetall key :获取在哈希表中指定key的所有字段和值 hmget key field1 field2 :获取所有给定字段的值 hmset key field1 value1 field2 value3 ....... :同时将多个field-value(域-值)对设置到哈希表key中
List
有序、可重复。C 语言本身没有链表这个数据结构的,所以 Redis 自己设计了一个链表数据结构。
list(列表)简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
llen key :获取哈希表中所有的值获取列表长度 lpop key :#移除列表头部第一个值(左) lpush key value1 value2... :#将一个值或多个值插入列表的头部(左) lpushx key value :将一个值插入到已存在的列表的头部 lrange key 0 -1 获取指定范围内的元素 lrem key count value :移除列表中count个与参数value相等的元素。 count > 0 :从表头到表尾 count=0 :移除所有 lset key index value :通过索引(下标)设置列表元素的值 ltrim key 0 6 :对一个列表进行修剪 让列表只保留指定区间内的元素,不在指定区间的元素都将被删除 rpop key :#移除列表尾部第一个值(右) rpoplpush :列表 列表 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 rpush key v1 v2 ... #将一个值或多个值插入列表的尾部(右) rpushx key value :为已存在的列表添加值
Set
set 无序,不重复。是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。内部实现是一个 value为null的Hash(key是唯一的 保证了不重复),实际就是通过计算hash的方式来快速排重的。
set 是 string 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 sadd key member1 menber2...:向集合添加一个或多个成员 scard key :获取集合的成员数 smembers key :#查看指定set中所用元素 sdlff key1 key2 :返回第一个集合和第二个集合(其他集合)之间的差异 sinter key1 key2 :#获取多个set交集 (共同好友、共同关注) sunion key1 key2 :返回所有给定集合的并集 sismember key member :判断member元素是否是集合key的成员 smove source destination member :将member元素从source集合移动到 destination集合 spop key :移除并返回集合中的一个随机元素 srandmember key :数字 返回集合中一个或多个随机数 srem key member1 ..... :移除集合中一个或多个成员
Zset
zset(有序集合)有序集合,在set的基础上增加了一个排序的值。
是 string 类型的有序集合。zset的成员是唯一的,但分数(score)却可以重复。
zset集合和无序集合一样都是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 zadd key score1 member1 【score2 member2】 :向有序集合添加一个或多个成员,或者更新已经存在的分数 zcard key :获取有序集合的成员数 zcount key min max :计算在有序集合中指定区间分数的成员数 zrange key start stop withscores :通过索引区间返回有序集合指定区间内的成员 zrevrangebyscore key max min withscores :返回有序集合中指定分数区间内的成员,分数从高到低排序 zscore key member :返回有序集合中,成员的分数值
geospatial
地理位置 (定位、附近的人、打车距离……)
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" (integer) 2 redis> GEODIST Sicily Palermo Catania "166274.15156960039" redis> GEORADIUS Sicily 15 37 100 km 1) "Catania" redis> GEORADIUS Sicily 15 37 200 km 1) "Palermo" 2) "Catania" redis>
#geoadd 添加地理位置规则:两极无法直接加入,通常通过java一次性导入 有效经度:-180到180 有效纬度:-85.05112878到85.05112878 geoadd china:city 121.47 31.23 shanghai geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 120.16 30.24 hangzhou 108.96 34.26 xian #geopop 获取指定成员的经度和纬度GEOPOS china:city chongqing beijin #geodist 查看成员间的的直线距离GEODIST china:city beijin shanghai km #georadius 以给定经纬度为中心,找出某一半径内的元素(附件的人)GEORADIUS china:city 110 30 1000 kmGEORADIUS china:city 110 30 1000 km withdist withcoord count 2 (withdist 显示直线距离 withcoord 显示经纬度 count 显示几条) #georadiusbymember 以给定成员为中心,找出某一半径内的元素georadiusbymember china:city beijing 1000 km withdist withcoord count 2 (withdist 显示直线距离 withcoord 显示经纬度 count 显示几条) #geohash 返回一个或多个位置元素的geohash表示 将二维的经纬度转换成一维的11位字符串 如果两个字符串越接近,则距离越近。
hyperloglog
基数 (不重复的元素个数) 标准误差小于1%。
HyperLogLog是一种概率数据结构,用于计算唯一事物(从技术上讲,这是指估计集合的基数)。该算法的神奇之处在于,不再需要使用与计数的项目数成比例的内存量,而是可以使用恒定的内存量!在最坏的情况下是12k字节,如果你的HyperLogLog(我们现在只称其为HLL)看到的元素很少,则会少很多。
PFadd key element #创建一组元素 PFcount key #统计元素基数 pfmerge key3 key1 key2 #合并两组key1 key2 => key3 并集
> pfadd hll a b c d (integer) 1 > pfcount hll (integer) 4
bitmaps
位存储。
各种实时分析。存储与对象ID相关的节省空间但高性能的布尔信息。
统计用户信息 活跃 不活跃 登录 未登录 打卡
两个状态的 都可以使用bitmaps
bitmaps位图数据结构,都是操作二进制位来进行记录的,非0即1
setbit key offset value #设置位图 getbit key offset #获取指定位图的值 bitcount key #统计数量 -----------例如 一周打卡 0为打卡 1打卡 127.0.0.1:6379> SETBIT sign 0 1(integer) 0 127.0.0.1:6379> SETBIT sign 1 0(integer) 0 127.0.0.1:6379> SETBIT sign 2 1(integer) 0 127.0.0.1:6379> SETBIT sign 3 0(integer) 0 127.0.0.1:6379> SETBIT sign 4 0(integer) 0 127.0.0.1:6379> SETBIT sign 5 0(integer) 0 127.0.0.1:6379> SETBIT sign 6 1(integer) 0 127.0.0.1:6379> GETBIT sign 0(integer) 1 127.0.0.1:6379> BITCOUNT sign(integer) 3
> setbit key 0 1 (integer) 0 > setbit key 100 1 (integer) 0 > bitcount key (integer) 2
keys命令:
keys * :查询所有的key del key :key存在时删除key exists key :检查key是否存在 expire key seconds(秒) :为key设置过期时间,以秒计算 persist key :移除key的过期时间,key将持久保持 ttl key :以秒为单位返回key的剩余过期时间 randomkey :从当前数据库中随机返回一个key rename key newkey :修改key的名称 move key db :将当前数据库的key移动到给定的数据库db当中 type key :返回key所存储值的类型
这篇关于Redis命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识