缓存-Redis命令汇总-Redis常用命令-Redis安装

Redis-REmote DIctionary Server

(使用ANSI C语言编写的开源数据库)

高性能的key-value数据库

内存数据库,支持数据持久化

官网 redis.io 中文redis.cn

A、Redis常用数据类型

string、hash、list(链表)、set、sorted set(有序集合)

B、编码方式

raw int ht zipmat linkedlist ziplist intset

C、安装redis

http://download.redis.io/releases/

下载2.8.0http://download.redis.io/releases/redis-2.8.0.tar.gz

windows版本https://github.com/MicrosoftArchive/redis/releases

https://github.com/MicrosoftArchive/redis/releases/

download/win-2.8.2402/Redis-x64-2.8.2402.zip

cd /usr/mylibs/

mkdir redis

wgethttp://download.redis.io/releases/redis-2.8.0.tar.gz

tar -xvf redis-2.8.0.tar.gz

cd redis-2.8.0

make

make test (测试)

You need tcl 8.5 or newer in order to run the Redis test

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/

cd /usr/local/tcl8.6.1/unix/

sudo ./configure

sudo make

sudo make install

D、服务端启动

redis-server

redis-server $

redis-server --port $

E、客户端启动与关闭

redis-cli

redis-cli -p $

redis-cli -a $

redis-cli -p $ -h $ -a $

关闭

redis-cli shutdown

redis-cli -p $ shutdown

redis-cli -h $ shutdown

redis-cli -p $ -h $ shutdown

F、Redis基础命令

info ping quit save dbsize select flushdb flushall

G、Redis键命令

set del exists expire ttl type randomkey

H、服务启动与连接测试

redis-cli 和redis-server执行文件位置: /usr/mylibs/redis/redis-2.8.0/src

cd src > ./redis-server & 回车 (后台启动)

关闭 kill -9 PID号

(查进程 ps -ef | grep redis)

(或者 ps aux )

重新开启一个窗口

./redis-cli

keys *

更多总结:

save 人为触发保存

直接终止进程 kill -9 PID (可能导致数据丢失,不推荐)

redis服务安全退出 ./redis-cli [-p 6379]shutdown

修改默认启动端口

6379 端口在redis.conf文件中,修改完成后启动时需要指定配置文件

(另:搜索文件位置 tree | grep conf)

启动./redis-server ../redis.conf

启用访问密码

同样在redis.conf,搜索 /requirepass ,(N 下一个 ?从下往上 / 从上往下)

启动./redis-server ../redis.conf

./redis-cli [-p 6379] -a root

注:设计到主从时,也需要配置密码 搜索 masterauth

相关问题进供备用参考

https://www.cnblogs.com/bestmystery/p/6371229.html

I、

基础命令

info 查看状态

select 1-15 选择数据库 (连接提示符上有数据库显示127.0.0.1:6379[10])

flushdb 清除当前database的数据

flushall 清除所有database的数据

dbsize 查看当前数据库的数据条数

monitor 监控

键命令实战

set test test

keys * (查看当前选择的数据库的所有的key)

del test

exists test

expire a 60 (设置a值有效时间为60秒,注意这里不是值,这里设置已存在key)

setex a 60 aa (这里是一步设置k-v和过期时间)

psetex a 10000 aa (这里的时间为毫秒,10000毫秒表示10s)

ttl test (查看当前key的剩余时间 -1表示没有过期时间 -2表示已过期,且值变成nil)

type a (返回当前值的类型)

hset hashkey key value

randomkey 随机返回当前数据库存在的key

rename a d (把key a重命名成key b,如果重命名成已经存在的key c,

那么c会被替换)

renamenx (nx结尾的命令会先判断,若已存在b,则重命名失败)

getrange a 0 2 (获取key a 的value的第0到第2位,前后都是闭区间)

J、数据结构-string

getset a aaa (先返回原来key的value,然后设置新的value)

mset a1 a1 b1 b1 c1 c1 (同时设置3组k-v)

mget a1 b1 c1 (同时获取多个key的value)

setnx a aa (先判断是否已存在key a,nx结尾都是先判断)

msetnx a aa b bb (具有事务原子性,要么全成功,要么全失败)

strlen a (获取key a的value的长度)

set e 1 //incr e (设置int ,incr 表示++1),incrby e 100 (每次增量为100)

//decr 和 decrby同上,另外使用 ±数量 来实现递增或递减

append a xxx (在key a 的value上追加)

(更多见“键命令实战”)

K、数据结构-hash

hset map name jiang

hexists map name (判断map中是否有name的key)

hget map name

hset map age 28

hgetall map (获取所有的key 、value (非键值对形式))

hkeys map (获取所有key)

hvals map(获取所有的value)

hlen map (获取k-v个数)

hmget map name age (同时获取多个指定key的value)

hmset map newname newnamevalue newage newagevalue(同时设置多个k-v)

hdel map key1 key2 (同时删除多key)

hsetnx map name newjiang (set前先判断)

L、数据结构-list

lpush listobj 1 2 3 4 5 6

llen listobj (获取个数)

lrange listobj 0 20 (最新的数据在最上)

lset listobj 0 100 (设置索引0的元素的值为100)

lindex listobj 0 (根据索引取值)

lpop listobj (移除第一个)

rpop listobj(移除最后一个 )

M、数据结构-set(无序、可排重、时间复杂度O(1))

//时间复杂度https://zhidao.baidu.com/question/545786195.html

sadd set a b c d

scard set (获取set集合元素的数量)

rename set set1

sadd set2 c d e f

smembers set1 (查看集合的成员)

sdiff set1 set2 (差集 set1减去set2,abcd - cdef = ab (保留前者独立存在的))

sdiff set2 set1(cdef-abcd=fe (保留前者独立存在的))

sinter set1 set2 (交集 =cd)

sunion set1 set2 (并集 = 所有值,但无重复)

srandmember set1 2(随机获取集合中的2个元素)

sismember set1 a (判断是不是集合中的元素)

srem set1 a b(移除集合中的a b两个元素)

spop set2 (随机移除一个元素并返回该元素(这个可用用于订单号获取))

N、数据结构-sortedset(有序集合,复杂度O(1))

zadd sortedset1 100 a 200 b 300 c (成员不可重复,但分数可重复)

type sortedset1 (=zset)

rename sortedset1 sortedset

zcard sortedset (查看集合中个数)

zscore sortedset a (查看a的分数 = 100)

zcount sortedset 0 201 (查看符合0到201前后闭区间的个数=2)

zrank sortedset a (获取索引(会先按值排序) =0)

zincrby sortedset 1000 a (给a添加1000)

zrank sortedset a (在上一步操作之后(会先按值排序) =3)

zrange sortedset 0 100 (= “b”,"c",“a”, 为什么有a?)

zrange sortedset 0 100 withscores(会分别携带相应的分数)

红色加粗提醒您,要注意了......

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180516G0C0UE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券