redis 学习笔记(未完)


1,not only sql;

2,非关系型数据库。

3,特点:

key=>value形式对数据进行存储,比如:jsonarray

水平可扩展的??什么意思?

4,

  1. 下载源码包:redis.io

  2. 解压缩:tar –zxvf redisxxxx

  3. cd redisxxx

  4. make //如果没有gcc编译器,请安装gcc yum install gcc

  5. cp redis.conf /etc

  6. cd src cp redis-benchmark redis-cli redis-server mkreleasehdr.sh redis-check-aof redis-check-dump redis-sentinel /usr/bin/

  7. cd /usr/bin / redis-server /etc/redis.conf ps –ef | grep redis

  8. ps –ef | grep redis

  9. redis-cli

10,redis-cli shutdown

5,数据类型:string,hash.list,set zet;

sring:二进制安全的,可以包含任何数据,比如图片或者序列化数据。


6,操作方法

字符串操作:

set name wanghongli 同一个键只能有一个

exists mykey 判断某个键值是否存在。存在返回1,不存在返回0

setnx 如果key存在返回0 ,不覆盖。

setex 指定key value 的有效期 过期则返回空(nil) set name 10(s) wanghongli

setrange name 6 gmail.com 设定name字符串从第六个开始替换成gmail.com 成功返回的是修改后字符串的个数。

mset 成功ok 失败 0 mset key1 wanghongli key2 wanghongli2 key3 wanghongli3; 设置多个键值 key value key value

msetnx 成功ok 失败0 mset key1 wanghongli key2 wanghongli2 如果有一个存在,那么设置就会失败。


get key 获取字符串的值。

getset key value 设置新值,返回旧值。 Getset name wanghongli

getrange name 0 5 返回值得05的字符串。

mget key1 key2 key3

incr key5 将值加1 返回。设置某一个键

incrby key5 5 自增5

Decr key5 自减

Decrby key5 10; 自减10

append 给指定的key追加value append key_name .net

strlen strlen name 返回值得长度。

hash数据类型

是一个string类型的field value的映射表。特别适用于存储对象。减少内存,方便存取整个对象。

hset设置一个hash表。 Hset user:001 name wanghongli

hsetnx hsetnx user:001 name ‘wanghongli’

hmset 批量设置 hmset user:003 name wanghngli age 25 sex 1

hget user:001 name

hmget user:003 name age sex

hincrby hincrby user:003 age 20

hexists user:003 name 成功返回1

hlen 返回hash中字段数量 hlen user:003

hdel 删除字段 hdel user:003 age

hkeys 查看字段 hkeys user:001

hvals 返回hash表中所有的value hvals user:001

hgetall 获取某个hash中全部的key value

list类型

是一个链表,主要功能是push:向链表中压入元素。Pop 弹出一个元素。Redislist类型其实就是一个每个子元素都是string类型的双向列表,list既可以作为栈,也可以作为队列。

lpush 从头部压入一个元素

lrange listname 0 -1 从头第一个元素到尾的第一个元素。

rpush尾部压入一个元素。rpush list2 ‘wanghongli’ rpush list2 ‘helloworld’ 先进先出

lrange 0 -1

linsert key对应的特定位置前或后添加字符串。

linsert list1 before world hello world前面插入一个hello元素。

lset 设定list中指定下标的元素值。lpush list1‘hello’ lset list1 0 ‘world’ lrange 0 -1;

lrem key对应的list 中删除n个和value相同的元素。(n<0 从尾删除,n=0全部删除)

lrem list5 1 ‘hello’ list5中删除一个和hello相同的值。

ltrim:保留指定key的值范围内的数据。

rpush list8 ‘one’ rpush list8 ‘two’ ltrim list8 1 -1 保留下来的顺序。

lpop list头部删除一个元素,并返回删除的元素。Lpop list_name 相当于php中的array_pop(array_name);

rpop : list尾部弹出一个元素,并返回弹出的元素 rpop list_name

lpush:从头压入元素

rpush

rpoplpush :从列表尾部移除元素,从头部添加元素。

Rpoplpush mysqllist5 mysqllist6 mysqllist5 尾部弹出元素,压入到mylist6 头部

lindex 返回名称为keylistindex位置的元素。 Lindex mylist1 1;

set类型:无序集合,不允许重复。

sadd 向集合中添加一个元素。sadd myset “hello”

smembers myset1 查看集合中又那些元素

srem myset1 “wangholngli” 删除集合中的一个元素。

spop 从集和里面随机的弹出一个元素 spop myset

sdiff 两个集合的差集 sdiff myset1 myset2 以第一个集合为标准。

sdiffstore 将返回回来的差集存储到另外一个集合里面 sdiffstore myset3 myset1 myset2

sinter 返回交集 sinter myset1 myset2

sinterstore 将交集存储到另外一个集合里面。sinter myset6 myset1 myset2

sunion 返回集合的并集。sunion myset1 myset2

sunionstore 返回集合的并集,并存储到另外一个集合里 sunionstore myset3 myset1 myset2.

smove 将一个集合中的元素,移动到另外一个集合中去。myset myset1 myset2 “hello” myset1 “hello” 移动到myset2中去。

scard 查看集合中元素个数。scard myset1 返回的是集合中的元素的个数。

sismember myset1 “hello” 判断某个元素是否为集合中的元素。成功1 失败0

srandmember myset1 随机返回一个元素,但不删除。

sorted sort 有序集合:set集合的升级,加了一个顺序属性。一列存value 一列存sort

zadd 集合中添加一个元素 zadd myset 1 one 1 是顺序值

zrange myset1 0 -1 withscores 读取集合中的元素,按照排序。

zrevrange myset1 0 -1

zrem zrem myset1 “wanghongli” 删除集合中的元素。

zincrby zincrby sset1 2 one 将集合中one元素的key增加2 是对顺序号进行增加。

zrank 按下标排序 ,返回一个元素的索引值 zrank myset3 “helloworld”

zrevrank 降序排序,在返回索引。

Zrangebyscore zrangebyscroe myset1 2 3 [withscores]

zcount 返回集合中score在给定区间内的数量。zcount sset 2 4

zcard set2 返回集合中元素的总格数。

zremrangebyrand 删除 按索引删除。

zremrangebyscroe 按顺序删除元素。

7




你可能感兴趣的:(redis 学习笔记(未完))