ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis命令

2022-08-05 14:33:41  阅读:138  来源: 互联网

标签:6379 Redis redis value 命令 key 集合 integer


启动关闭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所存储值的类型

标签:6379,Redis,redis,value,命令,key,集合,integer
来源: https://www.cnblogs.com/henlan/p/16554167.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有