redis原生语句回顾

1、下载地址:http://redis.io/download,下载最新稳定版本

wget http://download.redis.io/releases/redis-6.0.8.tar.gz

tar -xzvf redis-6.0.8.tar.gz

cd redis-6.0.8

make

cd src

./redis-server

./redis-server ../redis.conf

//连接redis服务器:redis-cli -h target-host -p 6379

info server:查看服务器信息

redis-cli -n index-db:连接指定数据库

info keyspace:查看当前数据库信息(所在库:key数量,key生存时间,平均key毫秒)

client list:查看当前连接数据库信息

//redis安全

1、通过redis.conf文件设置密码参数或命令行

config set requirepass "password"

config get requirepass :查看是否设置密码

//redis性能

redis-benchmark [option] [option value]

$redis-benchmark -n 10000 -q //同时10000请求


-h:指定服务器主机名(默认127.0.0.1);-p:服务器端口(默认6379);-s:指定服务器socket;-c:指定并发连接数(50);-n:指定请求数(10000);-d:以字节形式指定set/get值的数据大小(2);-k:(1=keep alive;0=reconnect默认1);-r:set/get/incr使用随机数key,sadd使用随机值;-P通过管道传输<numreq> 请求(默认1);-q:强制退出redis,仅显示query/sec值,显示每秒执行的请求数;--csv:以csv格式输出;-l:生成循环永久测试;-t:进运行以douhao分割的测试命令列表(set,get,lpsuh);-I(i):idle模式,仅打开n个idle连接并等待

redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q


客户端命令:

client list


$ select index-db:切换数据库

$ save:备份当前数据库

$ bgsave:后台执行备份

$ config get dir(获取redis安装目录,可将备份创建的dump.rdb文件放到此目录下恢复数据)

keys pattern :(keys *获取库内所有key)

move key db:把当前库内的key移动到指定库

exists key :检查key是否存在(1/0)

del key [key...] :删除key(1/0)

expire key seconds :为key设置过期时间,秒为单位(1/0)

expireat key timestamp :设置过期时间时间戳(1/0)

ttl key:剩余生存时间(key不存在返回-2,key存在未设置生存时间返回-1,否则返回秒数)

pttl key:剩余生存时间(key不存在返回-2,存在未设置返回-1,否则返回毫秒数)

flushdb: 清空当前库

randomkey:从当前库随机返回一个key

rename key newkey:重命名key

renamenx key newkey:仅当newkey不存在时,重命名

scan cursor [MATCH pattern] [COUNT count]:迭代数据库键,scan 0 10,以0作为游标开始新迭代,默认10条(返回参数1:下次迭代的新游标,第二个返回数组)

type key:查看存储值得类型

dump key :序列化给定key的值,返回序列化后的值(是redis特有的不标准的二进制,便于传输),key不存在返回nil(v>=2.6.0)

restore newkey TTL 二进制数据 REPLACE ABSTTL :(ttl0永久/秒数;replace覆盖已存在的键名,ABSTTL将ttl设为时间戳 )

redis>=3.0.6 MIGRATE支持多键迁移

核心参数:host:目标ip,Port目标端口,key|"":要迁移的键名(redis3.0.6+支持多建迁移此处为空字符串),destination-db:目标数据库索引(0-15),timeout:迁移超时时间(毫秒)

可选参数:COPY:迁移后不删除原建,REPLACE:覆盖目标已存在的的键,KEYS key key1 [key...]:3.0.6迁移多个建,Auth Password:目标实例认证密码,AUTH2 username password:目标实例用户密码

迁移单个键并覆盖目标

MIGRATE 127.0.0.1 6379 key 0 1000 REPLACE

#迁移多个建保留原键

MIGRATE 127.0.0.1 6379 "" 0 5000 COPY KEYS key1 key2 key3

MIGRATE特性:

原子操作:整个过程要么迁移成功,否则失败

直接传输:数据在源和目标redis直接传输

// string 存储

$ set key value (ok/0)//key不存在则设置,存在则覆盖

$ setnx key value //只有key不存在时设置

$ get key

$ getrange key start end //截取值的字符串

$ getset key value //设置新值返回旧值

$ mget key key1... //获取一个或多个key的值

$ setex key seconds value //设置生存时间秒的键值(已存在替换旧值)

$ setrange key offset value //设置替换从偏移量开始的字符串值

$ strlen key //返回字符串值的长度

$ mset key value [key1 value]

$ msetnx key value [key1 value1] //同时给多个不存在的key设置键值

$ psetex key millisesconds value //设置生存时间毫秒键值

$ incr key

$ incrby key increment(增量值,值可为负数 )

$ incrbyfloat key increment(增加浮点增量值)

$ decr key

$ decrby key increment

$ append key value

setbit key offset value //对key所存储的字符串值,设置或删除制定偏移量上的位

getbit key//对key存储的字符串,获取指定偏移量上的位

$ del key 或 del key key1

// 列表存储

$ lindex key index //通过索引获取列表的元素

$ llen key

$ lpush key value [value1 ...] //将一个或多个值插入列表头部

$ rpush key value [value1 ...]

$ lrange key start end //获取列表内指定范围内的元素(全部start:0 end:-1 ...)

$ lset key index value //根据索引设置列表元素

$ lpop key //移除头部元素并返回移除值

$ blpop key [key1 ...] timeout //移除头部元素阻塞

$ rpop key

$ brpop key [key1 ...] timeout //移除尾部元素阻塞

$ ltrim key start end //去除范围外部元素

$ lrem key count value //移除与value相等的元素(count>0头像尾count数量,count<0尾向头count数量,count=0删除所有与value相等的值)

$ linsert key before|after pivot value //在列表的元素前或后插入元素

$ lpushx key value

$ rpushx key value //为已存在的列表添加值

$ rpoplpush source destination //移除列表最后一个元素,并添加到另一个列表,并返回元素

$ brpoplpush source destination timeout

// hash存储

$ hset key field value

$ hsetnx key field value

$ hmset key field value [filed1 value1 ...]

$ hmget key field [field ...]

$ hget key field

$ hdel key field [field]

$ hgetall key 获取hash key所有字段和值

$ hexists key field

$ hincrby key filed increnment

$ hincrbyfloat key filed increment

$ hlen key //所有字段数量

$ hkeys key //所有字段

$ hvals key //获取hash表的所有值

$ hscan key cursor [MATCH PATTERN] [COUNT count] //迭代hash表中键值

//集合存储

$ sadd key value [value1 ...]

$ scard key 获取集合成员数量

$ sdiff key [key1 ...]

$ sdiffstore newkey key1 [key2 ...]

$ sinter key [key1 ...] //交集

$ sinterstore newkey key [key1 ...]

$ sismember key member // 检查集合元素是否存在

$ smembers key //返回集合所有成员

$ smove source destination member

$ spop key //随机移除并返回元素

$ srandmember key [count] //随机返回集合指定元素个数

$ srem member [member ...] //移除集合一个或多个成员

$ sunion key [key1] //集合并集

$ sunionstore newkey key [key1 ...]

$ sscan key cursor [MATCH PATTERN] [COUNT count]

//有序集合存储

$ zadd key score member [score1 member1 ...]

$ zcard key //返回集合元素个数

$ zrem key member [member ...] //zrem移除一个或多个元素

$ zremrangebyscore key min max

$ zrange key start end [withscores]

$ zrangebyscore key min max [withscores]

$ zrevrange key start end [withscores]

$ zrevrangebyscore key max min [withscores]

$ zrank key member //返回有序集合指定成员的索引

$ zrevrank key member //返回有集合从大到小的索引

$ zremrangebyrank key start end //移除排名区间的所有成员

$ zscore key member //返回集合中指定成员的分数

$ zinterstore destination-key keynum key [key1 ...]

$ zunionstore destination-key keynum key [key1 ...] //把多个集合并集存储到新destination-key,keynum和key数量一致

// HyperLoglog存储

pfadd key element [element ...] //添加基数

pfcount key [key1 ...]

pgmerge destination key [key ...]

// publish and subcribe

pubsub [channels|numsub] [pattern channel ...](p*) //查看订阅与发布状态

publish channel messge //将信息发布到指定频道

subscribe channel [channel ...] //订阅一个或多个频道

unsubscribe channel [channel ...] //取消订阅

psubscribe pattern [pattern ...] //订阅一个或多个给定模式频道

punsubscribe pattern [pattern ...]

// 事务

multi

set key value

mset key1 value1 key2 value2

get key

exec

discard

//reids lua脚本

eval "return {KEYS[1],KEYS[2],ARGV[1]}" keysnum key-value argv-value

//geo地理位置存储3.2

geoadd Longitude latitude member [longitude latitude ...] //添加地理位置坐标

geopos key member [member ...] //获取一个或多个地理位置坐标

geodist key member1 member2 [m|km|ft英尺|mi英里] // 计算两个位置的距离

georadius key lng lat radius m|km|mi英里|ft英尺 [WITHCOORD] [withdist] [withhash] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key] //根据坐标获取指定范围内的集合

georadiusbymember key member radius m|km|mi英里|ft英尺 [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]//根据集合某位置获取指定范围位置集合

***

withdist:同时返回距离;withcoord:同时返回经纬度;withhash:以52位有符号整数的形式,返回位置元素经过原始geohash编码的有序集合分值。主要应用与底层应用或调试;count:限定返回的记录数;asc:从金稻园;desc:从远到近

***

geohash key member [member ...] 返回一个或多个位置的geohash值

// php使用redis

1、php安装phpredis扩展

$ wget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz

$ tar zxvf 3.1.4.tar.gz # 解压

$ cd phpredis-3.1.4 # 进入 phpredis 目录

$ /usr/local/php/bin/phpize # php安装后的路径

$ ./configure --with-php-config=/usr/local/php/bin/php-config

$ make && make install

2、修改php.ini文件 vi /usr/local/php/lib/php.ini增加:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts"

extension=redis.so

3、连接redis

$redis = new Reids();

$redis->connect('127.0.0.1',6379);

echo $redis->ping();

$redis->set(''key,'value');

$redis->get('key');

相关推荐
c***93771 小时前
【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库
数据库·mysql·数据库开发
列星随旋1 小时前
redis分片集群的部署和使用
redis·学习
u***1371 小时前
开启mysql的binlog日志
数据库·mysql
途经六月的绽放1 小时前
零基础入门 MongoDB:文档型数据库的魅力与应用
数据库
o***74171 小时前
一条sql 在MySQL中是如何执行的
数据库·sql·mysql
科技块儿2 小时前
常见IP归属地数据库对比
网络·数据库·tcp/ip
足球中国2 小时前
SQL Server 索引维护完整指南
数据库
m***92382 小时前
【MySQL】C# 连接MySQL
数据库·mysql·c#
u***28472 小时前
SpringBoot集成Flink-CDC,实现对数据库数据的监听
数据库·spring boot·flink