redis笔记

redis是什么

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries.
开源的,BSD许可,高级的key-value存储系统,可以用来存储字符串、哈希结构、链表、集合,因此常用来提供数据结构服务。


redis和memcached相比的独特之处

  1. redis可以用来做存储(storge),而memcached是用来做缓存(cache),这个特点主要是因为其“持久化”的功能。
  2. 存储的数据结构:对于memcache来说,存储的数据只有1种类型——字符串,而redis则可以存储字符串、链表、哈希结构、集合、有序集合。

Redis对于key的操作命令

keys pattern

查询相应的key

  • keys *
  • keys site
  • keys sit[e|y]

在redis里,允许模糊查询key
有3个通配符 *, ? ,[]

 - *: 通配任意多个字符
 - ?: 通配单个字符
 - []: 通配括号内的某1个字符
redis 127.0.0.1:6379> flushdb
OK
redis 127.0.0.1:6379> keys *
(empty list or set)
redis 127.0.0.1:6379> mset one 1 two 2 three 3 four 4
OK
redis 127.0.0.1:6379> keys o*
1) "one"
redis 127.0.0.1:6379> key *o
(error) ERR unknown command 'key'
redis 127.0.0.1:6379> keys *o
1) "two"
redis 127.0.0.1:6379> keys ???
1) "one"
2) "two"
redis 127.0.0.1:6379> keys on?
1) "one"
redis 127.0.0.1:6379> set ons yes
OK
redis 127.0.0.1:6379> keys on[eaw]
1)"one"

randomkey

返回随机key

exists key

判断key是否存在,返回值是1/0

type key

返回key存储值的类型
有String、link、set、order set、hash

ttl key

查询key的生命周期,返回的是秒数

:对于不存在的key或已过期的key 和 不过期永久有效的key,都返回-1 Redis2.8中,对于不存在的key,返回-2

expire key 整型值

设置key的生命周期,以秒为单位

同理:

  • pexpire key 毫秒数, 设置生命周期
  • pttl key, 以毫秒返回生命周期

persist key

把key设置为永久有效

del key1 key2 … keyn

删除1个或者多个键,不存在的key忽略掉,返回真正删除的key的个数

rename key newKey

给key一个新的newKey名,如果newKey已经存在,则newKey的原值被覆盖

renamenx key newKey

把key改名为newKey,发生修改返回1,未发生修改返回0

:nx——>not exists,即newKey不存在时作改名动作,存在则不改防止跟已有的冲突

move key db

将key移到某个数据库

注意: 一个redis进程,打开了不止一个数据库, 默认打开16个数据库,从0到15编号,如果想打开更多数据库,可以从配置文件修改

redis 127.0.0.1:6379[1]> select 2
OK
redis 127.0.0.1:6379[2]> keys *
(empty list or set)
redis 127.0.0.1:6379[2]> select 0
OK
redis 127.0.0.1:6379> keys *
1) "name"
2) "cc"
3) "a"
4) "b"
redis 127.0.0.1:6379> move cc 2
(integer) 1
redis 127.0.0.1:6379> select 2
OK
redis 127.0.0.1:6379[2]> keys *
1) "cc"
redis 127.0.0.1:6379[2]> get cc
"3"

Redis字符串类型的操作

set key value [ ex 秒数 ] / [px 毫秒数] [ nx ] / [xx]

设置key值的同时设置有效期,同时写以后面的有效期为准

set a 1 ex 10   //10秒有效
set a 1 px 9000  //9秒有效
set a 1 ex 100 px 9000  //同时写以后面的有效期为准,这里是9000毫秒

nx: 表示只有key不存在时才能执行操作
xx: 表示key必须存在时,执行操作

mset key1 value1 key2 value2 …

一次性设置多个key值
例: mset key1 v1 key2 v2 ….

get key

获取key的值

mget key1 key2 … keyn

获取多个key值

setrange key offset value

字符串的offset偏移字节,改成value
这里写图片描述

redis 127.0.0.1:6379> set greet hello
OK
redis 127.0.0.1:6379> setrange greet 2 x
(integer) 5
redis 127.0.0.1:6379> get greet
"hexlo"

注意: 如果偏移量>字符长度, 该字符自动补0x00

这里写图片描述

redis 127.0.0.1:6379> setrange greet 6 !
(integer) 7
redis 127.0.0.1:6379> get greet
"heyyo\x00!"

append key value

把value追加到key的原值上

getrange key start stop

是获取字符串中 [start, stop]范围的值

注意: 对于字符串的下标,左数从0开始,右数从-1开始

redis 127.0.0.1:6379> set title 'chinese'
OK
redis 127.0.0.1:6379> getrange title 0 3
"chin"
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值