redis代码

docker pull redis

docker images -a

docker run -itd --name=myredis redis

docker exec -it myredis hostname -i

docker run -it --rm redis redis-cli -h 172.17.0.4

ping

set name naruto

get name

redis-cli -h 172.17.0.4

redis-benchmark -h 172.17.0.4 -p 6379 -c 100 -n 100000 #redis性能测试 
100并发 100000请求

#选择数据库  默认16个  0-16
select 15 

#查看当前数据库中的数据大小
DBSIZE  

#查看当前数据库中的所有键
keys *  

#清除当前数据库中的数据
FLUSHDB  

#清除所有数据库中的数据
FLUSHALL  

#查看key是否存在
EXISTS name

#在当前数据库中移除name  1代表当前数据库
move name 1 

#string类型#######################################################

set  name aaa

get name 

#设置name的存活时间  此处为10s
EXPIRE name 10 

#查看name剩余的存活时间
ttl name  

set key1 v1

keys *

get key1

#查看key1的类型
type key1  

#在key1后拼接字符串  若key1不存在则创建
APPEND key1 "hello"  

#获取key1长度
STRLEN key1  

set views 0

#自增1
INCR views  

#自减1
DECR views  

#自增10,设定步长指定增量
INCRBY views 10  

#自减10
DECRBY views 10  

FLUSHALL

set key1 "abcdefg"

#截取字符串的0-3个字符
GETRANGE key1 0 3  

GETRANGE key1 0 -1

#以value替换字符串偏移为offset的部分
#SETRANGE key1 offset value  
SETRANGE key1 1 xx  #"axxdefg"

#设置有存活时间的key
#setex key seconds value  
setex keys 30 "redis"

#key不存在才设置  存在返回0  设置成功返回1
#setne key value  
setne key3 "mongoDB"

FLUSHALL

#一次设置多个值
mset k1 v1 k2 v2 k3 v3 

keys *

#一次获得多个值
mget k1 k2 k3 

#k4会创建失败  msetnx为原子性操作,要么一起成功,要么一起失败
msetnx k1 v1 k4 v4 

#设置对象
set user:1 {name:zhangsan,age:3} 

#另一种设置对象的方式
mset user:1:name zhangsan user:1:age 3  

FLUSHDB

#先获取再设置  不存在则返回nil  存在返回值并设置值 (nil)
getset db mongodb  


getset db redis  #(mongodb)

#list类型#######################################################

#从左边插入队列
LPUSH list one  

Lpush list two  

#从右面插入队列
Rpush list three  

#查看队列所有值
Lrange list 0 -1 

#按标号查看队列值
Lrange list 0 1 

 #从左边弹出队列  返回弹出值
Lpop list 

#从右面弹出队列  返回弹出值
Rpop list  

#按下标获取队列的值
Lindex list 1  

#获取队列长度
Llen list  

#队列允许重复值的存在
Lpush list three  

#移除队列中指定个数的值  精确匹配
Lrem list 2 three  

FLUSHdb

rpush list 1

rpush list 2

rpush list 3

rpush list 4

#通过下标截取指定长度的队列  list会被改变 只剩下被截取的元素
ltrim list 1 2  

lrange list 0 -1

#从list右侧弹出值并将之插入到newlist中
rpoplpush list newlist  

Lrange list 0 -1

lrange newlist 0 -1

#判断列表是否存在
EXISTS list1  

lpush list1 rredis

#将已存在的列表的指定下标的元素进行更新
lset list1 0 mongodb  

#在指定队列的指定元素之前插入元素before
linsert list1 before "mongodb" "before"  

#在指定队列的指定元素之后插入元素after
linsert list1 after mongodb after  

#set类型#######################################################

#向集合中添加数据
sadd my set hello world naruto  

#查看集合中的数据
smembers myset  

#判断元素是否在集合里
sismember myset naruto  

#获取集合中的元素个数
scard myset  

#移除set中的指定元素
srem myset naruto  

smembers myset

#随机选取set中的一个元素
srandmember myset 

 #随机选取set中的两个元素
srandmember myset 2 

#随机删除set中的元素
spop myset  

smembers myset

FLUSHDB

sadd myset hello world naruto

sadd myset set2

#将指定元素从myset移动到myset2
smove myset myset2 naruto  

FLUSHDB

sadd s1 a b c

sadd s2 c d e

#查找s1与s2的差集  (a b)
sdiff s1 s2  

#查找s1与s2的交集  (c)
sinter s1 s2  

#返回s1与s2的并集 (a b c d e)
sunion s1 s2  

#hash类型#######################################################

#本质上是键值对,它的值也是键值对 key-<key-value>

hset myhash field1 naruto

hget myhash field1

hmset myhash field1 hello field2 world

hmget myhash field1 field2

#获取hash内的全部数据
hgetall myhash  

#删除hash中的指定字段 对应的value也没有了
hdel myhash field1  

#查看hash中的字段数量
hlen myhash  

#判断hash是否存在指定字段
hexists myhash field1  

#只获取hash中的所有的字段名称
hkeys myhash  

#只获取hash中的所有的字段值
hvals  myhash  

hset myhash field3 5

#自增
hincrby myhash field3 2  

#自减
hdecrby myhash field3 2  

#不存在则创建  存在不创建
hsetnx myhash field4 hello  

#zset类型#######################################################

zadd myset 1 one

zadd myset 2 two 3 three

zrange myset 0 -1

zadd salary 2500 xiaohong 4000 zhangsan 400 naruto

#按照score升序排列  范围为全集
zrangebyscore salary -inf +inf 

#按照score升序排列并显示对应的score  上限2500
zrangebyscore salary -inf 2500 withscores  

#按照score降序排列所有元素并显示对应的score
zrevrange salary 0 -1 withscores  

#移除有序集合中的指定元素
zrem salary xiaohong  

#获取有序集合中的元素个数
zcard salary  

#获取socor在指定取件内的成员数量(闭区间)
zcount myset 1 3  

#Geospatial类型#######################################################
#Geospatial类型底层为zset  zset的所有命令都可以用

#添加经纬度数据  key values(经度 纬度 名称)
geoadd china:city 116.40 39.90 beijing  

geoadd china:city 121.47 31.23 shanghai 106.50 29.53 chongqing

geoadd china:city 114.05 22.52 shenzhen 120.16 30.24 hangzhou 108.96 34.26 xian

#获得指定城市的经纬度信息
geopos china:city beijing chognqing  

#获得指定城市之间的距离信息 默认单位为m
geodist china:city beijing shanghai  

#获得指定城市之间的距离信息  单位为km
geodist china:city beijing shanghai  km

#georadius以给定的经纬度为中心查找指定半径内的元素
#查找china:city中以经纬度110 30为中心,半径1000km内的元素
georadius china:city 110 30 1000 km  

#同时给出查询结果到中心的距离
georadius china:city 110 30 1000 km withdist  

#同时给出查询结果的经纬度
georadius china:city 110 30 1000 km withcoord  

#在查询结果中选3个给出  距离由近到远
georadius china:city 110 30 1000 km count 3  

#找出以指定元素为中心的1000km内的元素
georadiusbymember china:city beijing 1000 km  

#返回指定元素的二维经纬度的hash编码(11位的geohash字符串)
geohash china:city beijing 

#查看地图中的所有元素
zrange china:city 0 -1  

#移除指定元素
zrem china:city beijign  

#Hyperloglog类型#######################################################
#多用于统计不重复元素的数量,占用内存较小,有0.81%的错误率

#向hyperloglog中添加元素
pfadd mykey a b c d e f g h i j  

#向hyperloglog中添加元素
pfadd mykey2 a b c d e f l m n  

#统计hyperloglog中的不重复元素数量(基数)
pfcount mykey 

pfcount mykey2

#合并两个mykey、mykey2到mykey3
pfmerge mykey3 mykey mykey2  

pfcount mykey3

#Bitmap类型#######################################################
#多用于存储只有两个状态的对象的属性信息,并且可以统计
#一周的打卡为例

#周一状态为打卡
setbit sign 0 1  

#周二状态为未打卡
setbit sign 1 0  

setbit sign 2 0

setbit sign 3 1

setbit sign 4 1

setbit sign 5 0

setbit sign 6 0

#获取周四的打卡状态
getbit sign 3  

#统计状态为1的天数
bitcount sign  

#事务#######################################################

#开启事务
multi  

#命令入队
set k1 v1

set k2 v2

get k2

#执行事务
exec  

#取消事务
discard  

set money 100

set out 0

#监视money变量,事务结束监控自动销毁  相当于乐观锁
watch money  
#监视过程中被监视变量发生改变会直接导致事务内容全部失败

multi

incrby money 20

decrby out 20

exec

#事务执行失败监视不会消失  需要手动取消监视后重新监视
#解除单个的检视
unwatch money  
#解除全部的监视
unwatch  

#发布订阅#######################################################

#订阅一个频道并监听接收频道的消息
subscribe naruto  

#向频道发布一个字符串消息
publish naruto "hello, my fans."  


#negix?#######################################################

#查看当前库的主从信息
info replication  

#选择当前库的主库,当前库变为从库
slaveof 127.0.0.1 6379  

#从库变自己为主库
slaveof no one  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值